Wie soll ich mit Mokka und Chai testen, dass mein Versprechen gescheitert ist?
Ich bin verwirrt, weil ich zuerst dachte, ich sollte "Mocha-wie-versprochen" verwenden, aber das Paket ist jetzt veraltet (ich benutze Mocha 2.1.0), mit dem Hinweis zu Verwenden Sie einfach den Versprechenstest, der jetzt in Mokka integriert ist. siehe: Ссылка
Ein anderer Beitrag empfiehlt, das 'done' Argument zu entfernen es () Callback - nicht sicher, ich verstehe warum, seit meinem Verständnis, dass das Übergeben des "Done" -Parameters war der Weg zu signalisieren, dass ein Test war asynchron getestet werden. siehe: Wie überprüfe ich Versprechen mit Mokka und Chai richtig? ?
Wie auch immer, ich habe versucht, mein Problem auf den untenstehenden Code zu reduzieren - bitte hilf mir, dies zu ändern, damit ich testen kann, ob mein Versprechen tatsächlich fehlschlägt.
%Vor%Etwas mehr graben, und es scheint der richtige Weg zu sein, einen zusätzlichen catch-Block hinzuzufügen, so ...
%Vor%Ich bin an alternativen Ideen oder der Bestätigung interessiert, dass dies in Ordnung ist, wie es ist .. danke.
UPDATE:
Ben - Ich grabe jetzt, was Sie sagten, esp. nach dem knappen, aber hilfreichen Kommentar von Benjamin G.
Zusammenfassend:
Wenn Sie einen done
-Parameter übergeben, wird erwartet, dass der Test seine 'done-ness' auslöst, indem er die Funktion done()
aufruft;
Wenn Sie den Parameter done
nicht übergeben, funktioniert das normalerweise nur für synchrone Aufrufe. Jedoch,
Wenn Sie eine Zusage zurückgeben, fängt das Mocha-Framework (mocha & gt; 1.18) alle Fehler auf, die normalerweise verschluckt wurden (laut Spezifikation der Versprechen). Hier ist eine aktualisierte Version:
chai-as-promised
bietet ein sauberes Test-Framework für Promises:
In Ihrer Testdatei:
%Vor%Das fühlt sich sauber und intuitiv an. Aber Sie können etwas Ähnliches ohne chai-wie-versprochen wie folgt erreichen:
%Vor%Tags und Links javascript node.js promise mocha