Sinon-Stubs leicht säubern
Gibt es eine einfache Möglichkeit zum zurücksetzen aller sinon Spione mocks und stubs, die Arbeit wird sauber mit Mokka - beforeEach Blöcke.
Sehe ich eine Sandbox ist eine option, aber ich sehe nicht, wie können Sie mithilfe einer sandbox für diese
beforeEach ->
sinon.stub some, 'method'
sinon.stub some, 'mother'
afterEach ->
# I want to avoid these lines
some.method.restore()
some.other.restore()
it 'should call a some method and not other', ->
some.method()
assert.called some.method
InformationsquelleAutor der Frage austinbv | 2012-07-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sinon bietet diese Funktionalität durch die Verwendung von Sandboxendie verwendet werden können, sind ein paar Möglichkeiten:
oder
InformationsquelleAutor der Antwort keithjgrant
Können Sie verwenden, sinon.Sammlung wie abgebildet in diese blog-Beitrag (vom Mai 2010) der Autor des sinon Bibliothek.
Des sinon.collection-api hat sich geändert und ein Weg, es zu benutzen, ist die folgende:
InformationsquelleAutor der Antwort Dimitris Zorbas
Einem update zu @keithjgrant Antwort.
Ab version v2.0.0 ab, die sinon.test Methode wurde verschoben, um die eine separate
sinon-test
- Modul. Um die alten tests übergeben, müssen Sie Sie konfigurieren diese zusätzliche Abhängigkeit in jedem test:Alternativ, Sie zu tun, ohne
sinon-test
und verwenden Sandboxen:InformationsquelleAutor der Antwort anand
Wenn Sie ein setup, das haben sinon immer zurückgesetzt für alle tests:
in helper.js:
Und dann im test:
InformationsquelleAutor der Antwort sethcall
Beachten Sie, dass bei der Verwendung von qunit statt Mokka, müssen Sie wickeln Sie diese in ein Modul, z.B.
InformationsquelleAutor der Antwort sfuqua
restore()
nur wieder das Verhalten der gekürzte Funktionalität, ist aber nicht zurückgesetzt, der Zustand des stubs. Sie müssen entweder wickeln Sie Ihre tests mitsinon.test
und verwendenthis.stub
oder einzeln anrufenreset()
auf die stubsInformationsquelleAutor der Antwort Sandeep Adi