bhu*_*uga 10 javascript jasmine sinon
有什么方法可以找到sinon.js中所有活跃的间谍?我希望能够做到这样的事情:
afterEach ->
sinon.restoreAllSpies()
it "should not create a new MyClass", ->
spy = sinon.spy(window, 'MyClass')
expect(spy).not.toHaveBeenCalled()
Run Code Online (Sandbox Code Playgroud)
目前,我需要费力地(而且错误地!)这样做:
it "should not create a new MyClass", ->
spy = sinon.spy(window, 'MyClass')
expect(spy).not.toHaveBeenCalled()
window.MyClass.restore()
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Tom*_*ero 15
在这里找到答案:轻松清理sinon存根
基本上:
sandbox = sinon.sandbox.create()
sandbox.spy(object1, 'methodName')
sandbox.spy(object2, 'methodName')
sandbox.restore()
Run Code Online (Sandbox Code Playgroud)
我不这么认为,因为它所做的只是用间谍替换该函数,它不会在内部保存所有间谍。因此,您可以将所有间谍存储在一个数组中,并在 afterEach 上重置它们,或者只是在 beforeEach 上创建/覆盖新的间谍。