我正在使用 Jasmine 测试是否创建了某些对象并在它们上调用了方法。
我有一个 jQuery 小部件,它创建翻转计数器对象并在它们上调用 setValue 方法。翻转计数器的代码在这里:https ://bitbucket.org/cnanney/apple-style-flip-counter/src/13fd00129a41/js/flipcounter.js
翻转计数器是使用以下方法创建的:
var myFlipCounter = new flipCounter("counter", {inc: 23, pace: 500});
我想测试是否创建了翻转计数器并在它们上调用了 setValue 方法。我的问题是我如何在这些对象被创建之前监视它们?我是否监视构造函数并返回假对象?示例代码真的很有帮助。谢谢你的帮助!:)
更新:
我试过像这样监视flipCounter:
myStub = jasmine.createSpy('myStub');
spyOn(window, 'flipCounter').andReturn(myStub);
//expectation
expect(window.flipCounter).toHaveBeenCalled();
然后通过 flipCounter 测试 setValue 调用:
spyOn(myStub, 'setValue');
//expectation
expect(myStub.setValue).toHaveBeenCalled();
初始化 FlipCounter 的第一个测试很好,但是对于测试 setValue 调用,我得到的只是“setValue() 方法不存在”错误。我这样做对吗?谢谢!