Coffeescript Jasmine spyOn,带3.1轨道上的咖啡脚本,带测试轨道

Coffeescript Jasmine spyOn,带3.1轨道上的咖啡脚本,带测试轨道,coffeescript,jasmine,Coffeescript,Jasmine,我正在使用Jasmine和CoffeeScript(Rails 3.1)以及。其他一切都很好,但我不能让spyOn在函数调用上工作: describe "spyOn", -> it "should spy", -> foo = bar: -> spyOn(foo, 'bar') foo.bar() expect(foo.bar).toHaveBeenCalled() 预期失败了。怎么了 更新:相同的代码适用于。这可能是带有t

我正在使用Jasmine和CoffeeScript(Rails 3.1)以及。其他一切都很好,但我不能让spyOn在函数调用上工作:

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

    spyOn(foo, 'bar')
    foo.bar()
    expect(foo.bar).toHaveBeenCalled()
预期失败了。怎么了


更新:相同的代码适用于。这可能是带有test_track的jasmine版本的一个bug。

看看编译的JavaScript并从那里进行调试。也许这些回报造成了问题

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

看看编译后的JavaScript,然后从那里进行调试。也许这些回报造成了问题

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

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


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


您是否存在空格与制表符的问题?由于不正确的空格问题,
spyOn
调用是否被拉入了
bar
函数?谢谢你的建议,但是如果我复制并粘贴相同的代码到tryjasmine上,它就可以工作了,所以它一定是其他的东西。如果你创建的是空函数,最好将它们写成
(>)
。在某些情况下,省略paren会导致问题。在bar函数中放置console.log可能是值得的,只是为了看看它是否被调用。@aaron我试过了,但结果是sameDo您有空格vs tabs的问题吗?由于不正确的空格问题,
spyOn
调用是否被拉入了
bar
函数?谢谢你的建议,但是如果我复制并粘贴相同的代码到tryjasmine上,它就可以工作了,所以它一定是其他的东西。如果你创建的是空函数,最好将它们写成
(>)
。在某些情况下,省略parens会导致问题。在bar函数中放置console.log可能是值得的,只是为了看看它是否被调用。@aaron我试过了,但结果是建议的sameThanks,但这不是问题所在。我刚刚发现了它是什么,我现在就把它发布给其他人,让他们参考Hanks的建议,但这不是问题所在。我刚刚找到了它,我现在就把它发布给其他人参考