试图通过jasmine-rails gem运行一些茉莉花规格(用coffeescript编写),我收到了几个茉莉花错误。我在我的代码中的几个点使用andCallFake()
方法,并且包含该方法的任何规范都失败了。我的所有其他测试都通过了。起初我怀疑它与jasmine.mock-ajax
库有关,但是试图在不使用该库的方法上创建间谍会导致同样的错误。
示例测试代码(咖啡):
it 'should trigger an event on success', ->
validateSpy = jasmine.createSpy 'validate spy'
obj.on 'validated', validateSpy
$.ajax.isSpy = false
spyOn($, 'ajax').andCallFake(params) ->
params.success = true
错误信息:
TypeError: Object function () {
callTracker.track({
object: this,
args: Array.prototype.slice.apply(arguments)
});
return spyStrategy.exec.apply(this, arguments);
} has no method 'andCallFake'
答案 0 :(得分:2)
我可以在测试代码中发现一个错误:您需要andCallFake
和(params)
之间的空格
所以andCallFake (params)
我刚刚在coffeescript.org上试过这个,你可以看到差异
答案 1 :(得分:1)
看起来jasmine 2.0删除了andCallFake
方法,我们通过捆绑更新将其搞砸了。锁定jasmine-core
宝石可以解决问题。