第一次尝试使用Jasmine间谍,所以我希望我只是错过了一些明显的东西。我想要做的是跟踪对我定义为的函数的调用:
window.myFunction = ->
我有一个调用此函数的类方法。该方法工作正常,我可以测试它的大多数方面,但以下失败:
beforeEach ->
spyOn(window, 'myFunction').andCallThrough()
it 'should do that thing', ->
MyClass.makesCallToMyFunction
expect(window.myFunction).toHaveBeenCalled()
我做错了什么?我在SO上看过很多例子,其中很多都使用spyOn(window,'myFunction')... expect(window.myFunction)setup / spec。
任何见解都表示赞赏!感谢。
答案 0 :(得分:2)
这将失败:
it 'should do that thing', ->
MyClass.makesCallToMyFunction
expect(window.myFunction).toHaveBeenCalled()
因为MyClass.makesCallToMyFunction
不是方法调用,所以它只是对makesCallToMyFunction
函数的引用。如果你想在没有任何参数的情况下调用CoffeeScript函数/方法,那么你需要包含括号,否则CoffeeScript将不知道你想要调用函数:
MyClass.makesCallToMyFunction()