Verstehen von Sinon.js yield (), yes () und callsArg ()
Was ist der Unterschied zwischen
stub.yield([arg1, arg2, ...])
spy.yields([arg1, arg2, ...])
stub.callsArg(index)
in der Sinon.js stub-Bibliothek?
stub.yield()
ist der einzige, den ich habe in der Lage zu begreifen:
stub = sinon.stub(API, 'call_remote');
callback = sinon.spy();
API.call_remote('help', callback);
@stub.yield( "solution!" );
@stub.calledOnce.should.be.true;
@callback.calledOnce.should.be.true;
@callback.args[0][0].should.eql( "solution!" );
Als getestet mit should.js würden alle Behauptungen pass.
Gibt es ähnliche Testbilder für stub.yields()
und stub.callsArg(index)
?
Die Dokumentation bietet keine Beispiele, um zu klären, diese beiden anderen Methoden, aber ich bin neugierig auf Sie.
InformationsquelleAutor der Frage TimeEmit | 2013-04-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Glaube ich, dass die Methoden, wie in der Dokumentation sind wie folgt:
spy.yield
stub.yields
stub.callsArg
Den wichtigsten Unterschied zwischen
yields
undcallsArg
finden Sie im sinon der Dokumentation Erträge:yields
rufen die ersten Funktion argument, auf das Sie trifft mit alle optionalen Argumente, die Sie angeben.callsArg
wird beim aufrufen der Funktion argument an der index innerhalb dieser Aufruf istarguments
Objekt, und nicht passieren keine Argumente, um es (Sie könnencallArgWith
für das Verhalten).spy.yield
ist sehr ähnlich zustub.yields
außer es ist Teil der spy-API und ruft alle callbacks übergeben werden.Hier einige Beispiele zeigen, die Unterschiede (verzeihen Sie mir, wenn die Beispiele ein wenig gekünstelt):
Ergibt:
CallsArg:
Ausbeute:
InformationsquelleAutor der Antwort Travis Kaufman