Kann sinon stub withArgs mit einigen, aber nicht allen Argumenten übereinstimmen
Ich habe eine Funktion, ich bin Lunte, die aufgerufen wird mit mehreren Argumenten. Ich möchte, um zu überprüfen, nur das erste argument. Der rest sind callback-Funktion, so möchte ich Sie allein zu lassen. So, vielleicht habe ich die folgenden 2 Anrufe, die mit ajax ein Beispiel:
method.get = sinon.stub();
method.get(25,function(){/* success callback */},function(){/* error callback */});
method.get(10,function(){/* success callback */},function(){/* error callback */});
Kann ich nicht verwenden method.get.calls...
denn dann macht es keinen Unterschied, zwischen den ersten get(25)
und die zweite get(10)
. Aber wenn ich method.get.withArgs(25).calls...
entspricht es nicht, entweder, weil withArgs()
entspricht alle Argumente, die dies nicht (und noch nie konnte, Rückrufe ähnlich).
Wie bekomme ich sinon stubs zu prüfen und festlegen von Antworten, die basierend auf nur das 1. arg?
InformationsquelleAutor der Frage deitch | 2014-10-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
http://sinonjs.org/docs/#sinon-match-api
Können Sie sinon.match.alle:
InformationsquelleAutor der Antwort Andrew Radford
Wenn Sie nur wollen, um zu überprüfen, das erste argument können Sie
oder
InformationsquelleAutor der Antwort igor
diese Methode funktioniert sehr gut mit Spionen, wenn Sie überprüfen möchten, nur ein argument unter vielen
Aber ich verstehe nicht, warum Sie mit stubs hier. Wenn Sie nur wollen, um zu überprüfen, wie die Funktion aufgerufen wird, die Sie verwenden sollten, ein Spion. Wenn Sie möchten, um zu überprüfen, wie es heißt, UND ändern Sie das Verhalten von (ex: Sperrung ajax-Aufrufe), dann sollten Sie ein mock.
Sinon verspottet haben Ihre eigene Art der Prüfung Sachen. Der einzige Weg den ich kenne für Ihren Fall wäre die Verwendung von sinon.match.viele der Argumente, die Sie nicht wollen, um zu überprüfen:
mock.verify() wird fortgesetzt, um die test-UND reset-mock für die anderen Prüfungen, im Falle der Verwendung ein Spion oder ein stub-Sie sollten es tun, mannually mit restore () - oder reset() nach jedem test
PD: sorry, über die TypeScript-syntax hier :p
InformationsquelleAutor der Antwort Florent Arlandis