Suites and Specs
- Suite -> describe
- Spec -> it
JavaScript
describe("abstract suite", function() {
it("abstract spec", function() {
//spec
});
describe("concrete suite", function() {
it("concrete spec1", function() {
//spec
});
it("concrete spec2", function() {
//spec
});
});
});
CoffeeScript
describe "abstract suite", ->
it "abstract spec", ->
#spec
describe "concrete suite", ->
it "concrete spec1", ->
#spec
it "concrete spec2", ->
#spec
beforeEach / afterEach
describe内に書く。RSpecにおけるbefore do ~ end
,after do ~ end
を思い出す。
JavaScript
beforeEach(function() {
//doBefore
});
afterEach(function() {
//doAfter
});
CoffeeScript
beforeEach ->
#doBefore
afterEach ->
#doAfter
Matchers
RSpecにおける.should be_xxx
みたいなやつら。
toEqual
- 同値であるかどうか
expect("string").toEqual("string");
toBe
- 同オブジェクトであるかどうか
expect("object").toBe("object");
toBeTruthy / toBeFalsy
- true / false であるかどうか
expect(evaluate).toBeTruthy();
expect(evaluate).toBeFalsy();
toMatch
- 正規表現でマッチするかどうか
expect('hello and goodbye').toMatch(new RegExp('hello'));
toBeDefined
- undefinedではないかどうか
var noop = function() {};
expect(noop).toBeDefined();
toBeNull
- nullであるかどうか
expect(arg).toBeNull();
toContain
- 配列に要素が、または文字列に文字列が含まれているかどうか
expect([1,2]).toContain(1);
toBeLessThan / toBeGreaterThan
- 数値的に少ないかどうか / 多いかどうか
expect(arg).toBeLessThan();
expect(arg).toBeGreaterThan();
toThrow
- 例外が投げられるかどうか
var err = function() {
throw new TypeError;
};
expect(err()).toThrow();
.not
toXXX
の頭に付けて否定
expect("object").not.toEqual("otherObject");