【发布时间】:2012-03-09 23:55:26
【问题描述】:
我正在使用 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() 方法不存在”错误。我这样做对吗?谢谢!
【问题讨论】:
-
你想“窥探”它的原因是什么?
-
我想确保创建了翻转计数器并设置了正确的值。
标签: javascript jasmine spy