为了测试我的代码的某个部分,我需要模拟一个原型方法以确保它被调用。代码看起来像这样。
SomeObject.prototype.foo = jasmine.createSpy()
var so = SomeObject()
so.bar()
expect(SomeObject.prototype.foo).toHaveBeenCalled()
这有效,但它改变了我不想要的 SomeObject 的状态。所以我想知道有没有办法在我完成后恢复prototype.foo 的状态?我正在考虑制作 SomeObject 的副本。我看了一下 jQuery.extend 但我不确定是否可以使用它来复制构造函数。