【问题标题】:Jasmine-rails error: has no method 'andCallFake'Jasmine-rails 错误:没有方法“andCallFake”
【发布时间】:2014-03-26 15:23:19
【问题描述】:

尝试通过 jasmine-rails gem 运行一些 jasmine 规范(用咖啡脚本编写),但我遇到了几个 jasmine 错误。我在代码中的多个点使用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'

【问题讨论】:

  • 原来 jasmine 2.0 删除了 andCallFake

标签: ruby-on-rails coffeescript jasmine


【解决方案1】:

看起来 jasmine 2.0 删除了 andCallFake 方法,我们通过包更新对其进行了改进。锁定jasmine-core gem 解决了这个问题。

【讨论】:

  • 是的,jasmine 2.0 使用 .and.CallFake 方法
【解决方案2】:

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

我刚刚在 coffeescript.org 上尝试过,你可以看到区别

【讨论】:

  • 对。 f(x) -> ...f(x)(-> ...)f (x) -> ...f((x) -> ...)
猜你喜欢
  • 2014-04-24
  • 2013-05-10
  • 1970-01-01
  • 2013-11-15
  • 1970-01-01
  • 1970-01-01
  • 2014-03-02
  • 2013-02-03
  • 1970-01-01
相关资源
最近更新 更多