Testen des abgelehnten Versprechens in Mocha / Chai

10

Ich habe eine Klasse, die ein Versprechen ablehnt:

%Vor%

In meinem Test:

%Vor%

Wenn der Test jedoch bestanden wird, wird der Fehler an die Konsole gesendet.

Unbehandelte Ablehnung Fehler: Boo    ...

Bei nicht versprechenswerten Fehlern habe ich bind verwendet, um zu verhindern, dass der Fehler ausgelöst wird, bis Chai umbrechen und testen konnte:

%Vor%

Dies funktioniert jedoch nicht und gibt Folgendes zurück:

Typfehler: [Function] is not a thenable.

Was ist der richtige Weg, um dies zu testen?

    
cyberwombat 06.08.2015, 01:23
quelle

4 Antworten

2

Sie erhalten den Fehler, weil sendNote abgelehnt wird und Sie ihn nicht abfangen.

Versuchen Sie:

%Vor%

Sieht so aus, als müsstest du auch deinen bestehenden Fang einen Block entfernen:

%Vor%     
rrowland 06.08.2015, 01:31
quelle
12

(Haftungsausschluss: Dies ist eine gute Frage auch für Leute, die Bluebird nicht verwenden. Ich habe eine ähnliche Antwort hier ; diese Antwort wird für Leute funktionieren, die Bluebird nicht benutzen.)

mit Chai-as-Versprochen

So können Sie chai-as-hosored verwenden, um sowohl resolve als auch reject cases für ein Versprechen zu testen:

%Vor%

ohne Chai-as-Versprochen

Sie können dasselbe ohne Chai-as-versprochen wie folgt erreichen:

%Vor%     
fearless_fool 14.05.2016 04:03
quelle
2

Ich persönlich benutze dieses Idiom:

%Vor%

Dies ist einer der seltenen Fälle, in denen then(onFulfilled, onRejected) (2 Argumente) zulässig ist.

Wenn Sie .then(reject).catch(onRejected) wie in anderen Antworten vorgeschlagen verketten, geben Sie jedes Mal den catch -Handler ein , da auch die im vorhergehenden then -Handler erzeugte Zurückweisung abgefangen wird - was zu immergrünen Tests führen kann, wenn Sie nicht vorsichtig genug sind, um diese Möglichkeit zu prüfen.

    
Sylvain Leroux 05.01.2018 18:51
quelle
0

Ich habe das gleiche Problem gehabt, aber bei vielen Hacks habe ich eine Lösung gefunden, um abgelehnte Versprechen im Mocha zu testen.

Schreibe den Mokka-Code wie folgt

%Vor%

HINWEIS: - Ich hoffe, Sie finden es nützlich. Wenn Sie einen anderen Ideenvorschlag haben, kommentieren Sie mich, ich bin der Neuling, der die js Welt erforscht

    
Shankar Chaudhary 21.07.2017 06:38
quelle