Pic*_*els 2 javascript mocking jasmine
为了测试我的代码的某一部分,我需要模拟一个原型方法来确保它被调用.代码看起来像这样.
SomeObject.prototype.foo = jasmine.createSpy()
var so = SomeObject()
so.bar()
expect(SomeObject.prototype.foo).toHaveBeenCalled()
Run Code Online (Sandbox Code Playgroud)
这可以工作,但它改变了我不想要的SomeObject的状态.所以我想知道有没有办法在我完成之后恢复prototype.foo的状态?我在考虑制作SomeObject的副本.我看了一下jQuery.extend,但我不确定我是否可以使用它来复制构造函数.
小智 6
两个选择.监视实例最好:
spyOn(so, 'foo');
Run Code Online (Sandbox Code Playgroud)
或者,如果您坚持要验证原型是否被调用:
spyOn(SomeObject.prototype, 'foo');
Run Code Online (Sandbox Code Playgroud)
每个规格之后,Jasmine都会撕下所有间谍.
| 归档时间: |
|
| 查看次数: |
1778 次 |
| 最近记录: |