February 2, 2014

Jasmine 1.xを2.xにしたら色々エラーになったので対応メモ

JSのテスティングフレームワークにはJasmineを使っていて、実行はgrunt-contrib-jasmineでやってます。
https://github.com/gruntjs/grunt-contrib-jasmine

grunt-contrib-jasmineはv0.6から、Jasmine 2.xを使用するようになったようです。
https://github.com/gruntjs/grunt-contrib-jasmine/blob/master/CHANGELOG

その関係で、ポツポツとエラーになったので、対応をメモしておきます。(単なる比較メモですが。)

先に、Jasmineの 1.x と 2.x のドキュメントは以下です。
http://jasmine.github.io/


1. spyOnでN回目の呼び出しのコンテキストを取得
// 1.x
spyOn($.fn, 'xxx')
expect($.fn.xxx.calls[0].args[0]).toEqual('yyy')

// 2.x
spyOn($.fn, 'xxx')
expect($.fn.xxx.calls.all()[0].args[0]).toEqual('yyy')
2. callCount
// 1.x
expect(object.method.callCount).toEqual(3)

// 2.x
expect(object.method.calls.count()).toEqual(3)
3. createSpy()のandReturn()
// 1.x
jasmine.createSpy().andReturn('xxx')

// 2.x
jasmine.createSpy().and.returnValue('xxx')
4. createSpy()のandCallThrough()
// 1.x
spyOn(Object.prototype, 'xxx').andCallThrough()

// 2.x
spyOn(Object.prototype, 'xxx').and.callThrough()
5. createSpy()のandCallFake()
// 1.x
spyOn(Object.prototype, 'xxx').andCallFake ->

// 2.x
spyOn(Object.prototype, 'xxx').and.callFake ->
P.S.
ホントは一通り2.xな書き方を理解して書きなおしたほうが良いんだろうけど。。。あと、一部、CoffeeScriptな書き方が混じっています。

No comments:

Post a Comment