miałem ten sam problem jak wspomniałeś w komentarzu, że mój test, który nie został przetestowany, zatrzymałby "źle", pokazując źle sformatowany komunikat Died on test #1
bez żadnych użytecznych informacji.
Skończyło się na połączeniu obu; raises()
dla jednego testu i try/catch
dla drugiego testu.
użyłem podwyżki() dla testu, który testuje że Error
jest wyrzucane, podobne do tego:
test("When myFunction() is called with a invalid instance Then Error is thrown", function() {
// Arrange
var testInstance = {};
// Act
raises(function() {
myFunction(testInstance);
}, Error, "myFunction() should throw an Error");
// Assert
// raises() does assertion
});
Jeśli powyższe rzuca Error
wszystko jest w porządku, a jeśli nie jest wyświetlany miłym sformatowana wiadomość, podobny do tego:
myFunction() should throw Error
Result: No exception was thrown.
następnie stosuje try/catch
do badań, które muszą zapewnić, że nie są wyrzucane Error
podobny do tego:
test("When myFunction() is called with a valid instance Then no Error is thrown", function() {
// Arrange
var testInstance = new myObject();
var result;
// Act
try {
myFunction(testInstance);
result = true;
} catch(error) {
result = false;
}
// Assert
ok(result, "myFunction() should not throw an Error");
});
Jeśli powyższe nie Error
rzuca wszystko jest w porządku i jeśli Error
jest wyrzucany jest wyświetlany miłym sformatowany komunikat podobny do tego:
myFunction() should not throw an Error
Source: ...
check to http://stackoverflow.com/questions/10190392/potwierdzanie-że-funkcja-throws-wyjątki-z-qunit to może pomóc – hanane