Stubbing eine Mongoose Modell mit Sinon
Erstellen Sie einen stub für den Mungo save
Methode in einem bestimmten Modell, so dass jede Instanz von meinem Modell, das ich erstellen, rufen Sie die stub anstelle der normalen Mongoose save
Methode. Mein Verständnis ist, dass der einzige Weg, dies zu tun ist, um auszudrücken das gesamte Modell wie dieses:
var stub = sinon.stub(myModel.prototype);
Leider ist diese Codezeile bewirkt, dass meine tests zu werfen, die folgende Fehlermeldung:
TypeError: Cannot read property 'states' of undefined
Weiß jemand, was läuft hier falsch?
InformationsquelleAutor der Frage amandawulf | 2012-07-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es zwei Möglichkeiten, dies zu erreichen. Die erste ist
Wenn Sie console-log-Mungo.Modell sehen Sie die verfügbaren Methoden zum Modell (insbesondere schließt dies nicht die lte-option).
Den anderen (Modell-spezifisch) Weg ist
Wieder, die gleichen Methoden zur Verfügung stehen, um auszudrücken.
EDIT: Einige Methoden wie sparen Sie durch Stubs ersetzt werden, wie folgt:
InformationsquelleAutor der Antwort Jacob
Werfen Sie einen Blick auf sinon-Mungo. Sie erwartet eine verkettete Methoden mit nur ein paar Zeilen:
Finden Sie funktionierende Beispiele auf der repo.
Auch noch eine Empfehlung: verwenden Sie
mock
Methode stattstub
ist, überprüft die Methode gibt es wirklich.InformationsquelleAutor der Antwort Gon
save
ist keine Methode, auf dem Modell, es ist eine Methode, die auf dem Dokument (Beispiel eines Modells). Angegeben hier im Mungo docs.Daher wird es immer undefiniert ist, wenn Sie über Ihr Modell zu verspotten, ein
save()
Gehen zusammen mit @Gon ' s Antwort, mit sinon-Mungo & factory-girl mit
Account
mein Modell:Funktionieren nicht
Wird Arbeit
InformationsquelleAutor der Antwort djv
Statt das ganze Objekt versuchen:
Stellen Sie sicher YOURMODEL ist die Klasse, nicht der Instanz.
InformationsquelleAutor der Antwort Tanzeeb Khalili
Tangential bezogen, aber relevant...
Musste ich simulieren Sie eine benutzerdefinierte Modell-Methode wie:
Erstellen Sie einen stub habe ich:
InformationsquelleAutor der Antwort theUtherSide