Jasmin wirft Fehler auf erwarten Sie().toThrow statt der Identifizierung der Fehler geworfen
Ich versuche, die Funktionen implementieren, für den Druck ein Diamant in Bezug auf Lern-testgetriebene Entwicklung in javascript.
Diamond.prototype.outerSpace = function (current, widest) {
var currentValue = this.getIndexOf(current);
var widestValue = this.getIndexOf(widest);
if (currentValue > widestValue) {
throw new Error('Invalid combination of arguments');
}
var spaces = widestValue - currentValue;
return new Array(spaces + 1).join(' ');
};
Habe ich Probleme in der Fehlerbehandlung. Die obige Funktion sollte einen Fehler auslösen, wenn currentValue ist größer als widestValue.
Dies ist mein snippet Vertretung der test - /Spezifikation:
it ("should throw an exception, if it is called with D and C", function () {
var outerSpace = diamond.outerSpace.bind(diamond, 'D', 'C');
expect(outerSpace).toThrow('Invalid combination of arguments');
});
Habe ich versucht, auch mit einer anonymen Funktion in erwarten(..), aber auch dies hat nicht funktioniert.
Der Konsole die Meldung: Erwartete Funktion zu werfen', Inval...', aber es werfen Fehler: Ungültige Kombination von Argumenten.
Ich verstehe es nicht, was ich tun sollte, mit diesen Informationen.
Edit: Es ist merkwürdig, denn es ist die Arbeit mit Jasmin v. 1.3, aber es hat nicht funktioniert mit Jasmin v. 2.3 D. H. oder mit karma, obwohl der code basiert auf Jasmin.
Du musst angemeldet sein, um einen Kommentar abzugeben.
TL;DR
Mit Jasmin-2 der Matcher Semantik verändert und es gibt einen neuen matcher.
Verwenden
toThrowError("<message>")
odertoThrow(new Error("<message>")))
NTL;TR
Da Jasmin 2.x es gibt eine neue Matcher
toThrowError()
und JasminetoThrow()
wurde eine neue Semantik.toThrow()
sollte verwendet werden, um zu überprüfen, ob alle Fehler werfen oder prüfen, für die Meldung einerError
(konkreter: something, dieinstanceof Error
)toThrowError()
sollte verwendet werden, um zu überprüfen, ob eine bestimmten Fehler ausgelöst wurde oder wenn die Meldung des Fehlers entspricht der ErwartungIntern
toThrow(x)
macht eine überprüfung auf Gleichheit des geworfenen Fehlers gegenx
. Wenn sowohl die Fehler-undx
sindinstanceof Error
(das gilt auch fürTypeError
auch zum Beispiel) Jasmin prüft die Gleichheit (===
im Allgemeinen) von beiden Seitenmessage
Attribute.Form
toThrowError(x)
überprüft, ob die Fehlermeldung gleich oder entsprichtx
(string oder RegExp)Anderen form
toThrowError(t, x)
überprüft, ob der Fehler vom Typt
und die Nachricht gleich oder entsprichtx
(string oder RegExp)Sehen