Ich versuche zu testen, dass mein Konstruktor einen Fehler mit dem Teaspoon Juwel für Rails, mit ChaiJS als meine Assertion-Bibliothek werfen wird.ChaiJS erwarten, Konstruktor zu werfen Fehler
Wenn ich den folgenden Test durchführen:
it('does not create the seat if x < 0', function() {
var badConstructor = function() {
return new Seat({ radius: 10, x: -0.1, y: 0.2, seat_number: 20, table_number: 30});
};
expect(badConstructor).to.throw(Error, 'Invalid location');
});
ich diese Ausgabe:
Failures:
1) Seat does not create the seat if x < 0
Failure/Error: undefined is not a constructor (evaluating 'expect(badConstructor).to.throw(Error(), 'Invalid location')')
Der Konstruktor den Fehler zu werfen, aber ich glaube ich nicht schreibe der Test richtig.
Wenn ich expect(badConstructor())
versuchen laufen dann bekomme ich die Ausgabe:
Failures:
1) Seat does not create the seat if x < 0
Failure/Error: Invalid location
Ist es gemeint, 'expect (badConstructor())'? dh Sie müssen die Funktion aufrufen. – Andy
Ich habe es gerade versucht - ohne Erfolg. Jetzt bekomme ich eine weitere Fehlerausgabe - ich habe sie im OP hinzugefügt. – ThomYorkkke
So klingt es wie es richtig funktioniert, da "ungültiger Ort" Teil der Fehlermeldung ist. Sie müssen das entweder in Ihrem Test aufheben oder eine "try/catch" -Anweisung in Ihre Funktion einfügen, um einen Fehler zurückzugeben, auf den Sie testen können. – Andy