【问题标题】:Jasmine spyOn with CoffeeScript on Rails 3.1 with test_trackJasmine spyOn 与 CoffeeScript on Rails 3.1 与 test_track
【发布时间】:2011-12-18 03:24:56
【问题描述】:

我将 Jasmine 与 CoffeeScript(在 Rails 3.1 中)和 test_track 一起使用。其他一切都很好,但我不能在函数调用上使用 spyOn:

describe "spyOn", ->
  it "should spy", ->
    foo = 
      bar: ->

    spyOn(foo, 'bar')
    foo.bar()
    expect(foo.bar).toHaveBeenCalled()

期望失败。怎么了?

更新:同样的代码适用于tryjasmine。这可能是带有 test_track 的 jasmine 版本的错误。

【问题讨论】:

  • 您有空格与制表符的问题吗? spyOn 调用是否由于不适当的空白问题而被拉入 bar 函数?
  • 感谢您的建议,但是如果我将相同的代码复制并粘贴到 tryjasmine 中,它可以工作,所以它一定是别的东西
  • 如果您正在创建空函数,最好将它们写为(->)。在某些情况下,省略括号会导致问题。
  • 在 bar 函数中放置一个 console.log 可能是值得的,只是为了查看它是否被调用。
  • @aaron 我试过了,但结果是一样的

标签: coffeescript jasmine


【解决方案1】:

对于那些遇到同样问题的人,这里是答案:

https://github.com/quickleft/test_track/issues/7#issuecomment-2570580

【讨论】:

    【解决方案2】:

    查看已编译的 JavaScript 并从那里进行调试。也许这些退货会造成问题?

    describe("spyOn", function() {
      return it("should spy", function() {
        var foo;
        foo = {
          bar: function() {}
        };
        spyOn(foo, 'bar');
        foo.bar();
        return expect(foo.bar).toHaveBeenCalled();
      });
    });
    

    【讨论】:

    • 感谢您的建议,但这不是问题所在。刚找到是什么,我现在贴出来供大家参考
    猜你喜欢
    • 2011-12-20
    • 2011-11-08
    • 1970-01-01
    • 2015-08-16
    • 2012-03-31
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    相关资源
    最近更新 更多