In JUnit können Sie einen Test nicht bestehen, indem Sie:Fehler einen Test mit Chai.js
fail("Exception not thrown");
Was ist der beste Weg, um das gleiche mit Chai.js zu erreichen?
In JUnit können Sie einen Test nicht bestehen, indem Sie:Fehler einen Test mit Chai.js
fail("Exception not thrown");
Was ist der beste Weg, um das gleiche mit Chai.js zu erreichen?
Es gibt viele Möglichkeiten zu fälschen einen Fehler - wie die assert.fail()
von @DmytroShevchenko erwähnt -, aber in der Regel ist es möglich, diese Krücken und drücken die Absicht des Tests zu vermeiden, Ein besserer Weg, der zu aussagekräftigeren Nachrichten führt, wenn die Tests fehlschlagen.
Zum Beispiel, wenn Sie eine Ausnahme geworfen werden erwarten, sagen, warum nicht so direkt:
expect(function() {
// do stuff here which you expect to throw an exception
}).to.throw(Error);
Wie Sie sehen, wenn Ausnahmen zu testen, müssen Sie Ihren Code in einer anonymen Funktion wickeln.
Natürlich können Sie den Test verfeinern, indem Sie nach einem spezifischeren Fehlertyp, einer erwarteten Fehlermeldung usw. suchen. Weitere Informationen finden Sie unter .throw
in der Chai docs.
Es gibt assert.fail()
. Sie können es wie folgt verwenden:
assert.fail(0, 1, 'Exception not thrown');
... und deine Antwort ist die richtige für den Fall, dass es keine andere Option gibt, also bekommst du auch meinen upvote :) – hashchange
@hashchange Es gibt ein gutes Beispiel, wo du das anstelle von "to.throw" und verwenden würdest das ist in dem Fall, wo Sie Fehler in Objektkonstruktoren werfen könnten. – Mayhem93
Es gibt auch eine [** 'expect.fail()' **] (http://chaijs.com/api/bdd/#method_fail) – randominstanceOfLivingThing
Ich stimme völlig zu, dass das, was Sie skizziert haben, ein besserer Ansatz ist. –