Kraft-versagt eine Jasmin-test
Wenn ich code in einer test-das sollte nie erreicht werden (zum Beispiel die fail
- Klausel ein Versprechen Sequenz), wie kann ich die force-der test als nicht bestanden?
Verwende ich etwas wie expect(true).toBe(false);
aber das ist nicht schön.
Die alternative ist warten für den test, timeout, die ich vermeiden möchte (da es langsam ist).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jasmine bietet eine Globale Methode
fail()
, die verwendet werden können, innerhalb spec Blöckeit()
und ermöglicht auch die Verwendung von benutzerdefinierten Fehlermeldung:Diese gebaut wird-in Jasmin-Funktionalität und es funktioniert überall im Vergleich mit der 'error' - Methode habe ich unten erwähnt.
Vor-update:
Können Sie werfen eine Fehlermeldung aus, dass code-Zweig, es wird nicht eine Skillung sofort und Sie werden in der Lage sein, um benutzerdefinierte Fehlermeldung:
Aber man sollte vorsichtig sein, wenn Sie werfen eine Fehlermeldung aus die Erfolg Versprechen-handler
then()
, denn der Fehler wird verschluckt es und wird es nie kommen. Auch Sie sollten sich bewusst sein, die möglichen Fehler-Handler in Ihre app, die fangen könnte, diese Fehler in Ihrer Anwendung, so dass als Ergebnis Sie werden nicht in der Lage, einen test fehlschlagen.done.fail('message')
.throw new Error(message)
. Die Wirksamkeit hängt von Ihren test - runner auch überlegen, so etwas wieexpect('[reason for failure]').toBeNull()
.Dank TrueWill für bringen meine Aufmerksamkeit zu dieser Lösung. Wenn Sie den Test-Funktionen, die Rückkehr verspricht, dann sollten Sie das
done
imit()
. Und anstatt zu telefonierenfail()
sollten Sie rufendone.fail()
. Sehen Jasmin Dokumentation.Hier ist ein Beispiel
fail
unddone.fail
sind keine Funktionen (was wahrscheinlich heißt, dass nicht definiert). Ich bin mit den unelegantexpect(false).toBeTruthy()
als work-around.import 'jasmine';
an der Spitze von meinem testcase-Datei. Klingt wie Sie fehlen die Sie importieren möchten, oder verlangen oder so ähnlich.