-
型のチェックはjasmine.any(class)を使用する
expect(foo).toEqual(jasmine.any(Foo));
-
非同期処理をテストする際は関数の第一引数のdoneを利用する *
-
toBe()は===と同じ
-
toEqual()はオブジェクトや配列の比較に利用する
-
テストをfailにするにはfail()を使用する
-
~以外はnot.toBe()を利用する
-
beforeEach(), it(), afterEach()内でthisは共有される
Matcher *
-
expect(value).toBeTruthy()はvalueがtrueか
-
expect(value).toBeFalsy()はvalueがfalseか
-
expect(array).toContain(‘foo’)はarray内に’foo’があるか
-
expect(func).toThrow(message)はfuncを実行したときにthrowするか
Spy *
-
expect(spy).toHaveBeenCalled()はspyが実行されたか
-
expect(spy).toHaveBeenCalledTimes(times)はspyが実行された回数
-
expect(spy).toHaveBeenCalledWith(foo, bar)はspyが実行されたときの引数
-
spy = jasmine.createSpy(id)で基本的なspyを作成する
-
spyOn(obj, attr)でobj.attrをspyにする
-
spyOn(foo, ‘bar’)をしてfoo.bar()をすると元の処理は実行されない
spyOn(foo, ‘bar’).and.callThrough()でfoo.bar()の元の処理が実行される
clock *
-
jasmine.clock().tick(milliseconds)
で指定した時間をスキップすることができる。 -
jasmine.clock().tick(milliseconds)
を利用するためにはjasmine.clock().install()
を実行する必要がある。 -
jasmine.clock().install()
を実行した場合、jasmine.clock().tick(milliseconds)
以外で時間が進まない。 -
setTimeout()を実行した後に
jasmine.clock().tick(milliseconds)
を実行する。 -
時間をスキップする必要がなくなった場合、
jasmine.clock().uninstall()
を実行する必要がある。