Dies ist normalerweise, was Sie wollen, wenn Unit-Tests: Wenn es sowieso scheitern wird, tun Sie es schnell. I.e. bei dem ersten Problem in jeder Testfunktion fehlschlagen. Spätere Tests gehen üblicherweise davon aus, dass frühere Tests bestanden, z. Wenn der Seitentitel falsch ist und 404 heißt, gibt es keinen Sinn zu testen, dass die richtige Anzahl von Bildern auf der Seite ist.
Ich vermute, Sie dies wollen, so dass Sie weitere Informationen in den Testergebnissen zu bekommen, und ein Weg, dies zu tun wäre, einen einzigen assert und eine benutzerdefinierte Fehlermeldung zu verwenden:
var title = this.getTitle();
var linkText = this.getHTML('a#testLink');
this.assert(title == "MyPage" && linkText == "continue",
"title=" + title + ";a#testLink = " + linkText);
Aber das kann unordentlich werden. Wenn Sie die ganze Macht der assert
Familie von Funktionen verwenden möchten, und haben sie nicht werfen, sondern auch weiterhin, eine Studie von the source code zeigt, dass dies funktionieren könnte:
test.assert(false, null, {doThrow:false});
test.assertEquals(1 == 2, null, {doThrow:false});
test.assertEquals(2 == 2);
Und wenn Sie dies sein wollen Standardverhalten auf alle Ihre Behauptungen, nun, Hacking der Code könnte die beste Wahl sein! (Ändern Sie den Standardwert true
für doThrow
zu false
.)
Für Einheit dieses Verhalten testen, was Sie würden in der Regel wollen. Sie können den "Verifikations" -Ansatz verwenden, der die Testausführung überprüft, aber nicht stoppt (wie in der Antwort unten vorgeschlagen). Wenn Sie diese Situation beschreiben, werden normalerweise Signale über schlechtes Testdesign angezeigt. In einem Test zu viel testen. Die Lösung würde in separate Tests aufgeteilt werden. – buxter