Verwendung von toThrowError in Jasmine

8

Ich arbeite an einer App, die stark von JavaScript Gebrauch macht. Ich muss diesen Code testen. Um das zu erreichen, verlasse ich mich auf Jasmine.

Ein Teil meines JavaScript-Codes löst JavaScript-Fehlerobjekte aus. Diese Objekte weisen der Eigenschaft message und name des Error-Objekts Werte zu. Ich weise der name -Eigenschaft einen Ausnahmetyp zu. Zum Beispiel ist der Name manchmal auf "OutOfRangeException", manchmal auf "ArgumentException" usw. gesetzt.

Wie verwende ich die Funktion toThrowError im Jasmine-Framework, um zu testen, ob ein geworfener Fehler einen bestimmten Namen hat? Derzeit sieht mein JavaScript wie folgt aus:

%Vor%

Wie kann ich einen Jasmine-Test schreiben, der nach einem ArgumentException-Fehler oder einem ArgumentOutOfRangeException-Fehler sucht?

Danke!

    
user3192178 19.01.2014, 19:43
quelle

1 Antwort

21

Das Überprüfen der Ausnahme für eine Funktion mit Parameter wird in Jasmine nicht unterstützt. Sie können jedoch die folgende Problemumgehung verwenden, um diese Einschränkung zu umgehen und Ihre Funktionen zu testen.

%Vor%

toThrowError Matcher benötigt 1 oder 2 Parameter

  • 1 Parameter - entweder Ausnahmemeldung oder Ausnahmetyp
  • 2 Parameter - Ausnahmetyp und Ausnahmebedingungsnachricht

Zu überprüfendes Beispiel basierend auf dem Ausnahmetyp:

%Vor%

Siehe Link für verschiedene Arten von Ausnahmen.

>

Benutzerdefinierte Fehlermeldung

Das unten erwähnte Snippet enthält ein Beispiel für die Verwendung der benutzerdefinierten Fehlermeldungen.

%Vor%     
user3037143 20.01.2014, 16:47
quelle

Tags und Links