Coffeescript Jasmine spyOn,带3.1轨道上的咖啡脚本,带测试轨道
我正在使用Jasmine和CoffeeScript(Rails 3.1)以及。其他一切都很好,但我不能让spyOn在函数调用上工作: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
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的建议,但这不是问题所在。我刚刚找到了它,我现在就把它发布给其他人参考