Jasmine-rails错误:没有方法'andCallFake'

时间:2014-02-24 19:07:47

标签: ruby-on-rails coffeescript jasmine

试图通过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'

2 个答案:

答案 0 :(得分:2)

我可以在测试代码中发现一个错误:您需要andCallFake(params)之间的空格 所以andCallFake (params)

我刚刚在coffeescript.org上试过这个,你可以看到差异

答案 1 :(得分:1)

看起来jasmine 2.0删除了andCallFake方法,我们通过捆绑更新将其搞砸了。锁定jasmine-core宝石可以解决问题。