2012-03-30 6 views
8

Gibt es eine Möglichkeit, alle aktiven Spione in sinon.js zu finden? Ich möchte in der Lage sein, so etwas zu tun:Wie kann ich alle sinon.js-Spione nach jedem Test in Jasmine automatisch wiederherstellen?

afterEach -> 
    sinon.restoreAllSpies() 

it "should not create a new MyClass", -> 
    spy = sinon.spy(window, 'MyClass') 
    expect(spy).not.toHaveBeenCalled() 

Derzeit muss ich mühsam (! Und fehler pronedly) dies zu tun:

it "should not create a new MyClass", -> 
    spy = sinon.spy(window, 'MyClass') 
    expect(spy).not.toHaveBeenCalled() 
    window.MyClass.restore() 

Irgendwelche Ideen?

Antwort

4

Ich denke nicht, denn alles, was es tut, ist die Funktion mit einem Spion zu ersetzen, es speichert nicht alle Spione intern. Also Ether speichern Sie alle Spione in einem Array und setzen sie auf afterEach zurück oder erstellen/überschreiben einfach neue Spione auf beforeEach.

+1

Wie unglücklich :( – bhuga

12

Antwort finden Sie hier: Cleaning up sinon stubs easily

Grundsätzlich gilt:

sandbox = sinon.sandbox.create() 
sandbox.spy(object1, 'methodName') 
sandbox.spy(object2, 'methodName') 
sandbox.restore()