tôi đã có vấn đề tương tự như bạn đã đề cập trong nhận xét trong đó kiểm tra của tôi mà kiểm tra không có Error
được ném sẽ dừng "xấu" hiển thị thông báo được định dạng sai Died on test #1
mà không có bất kỳ thông tin hữu ích nào.
Tôi đã kết thúc bằng cách sử dụng kết hợp cả hai; raises()
cho một thử nghiệm và try/catch
cho một thử nghiệm khác.
tôi đã sử dụng tăng lương() cho kỳ thi này mà kiểm tra rằng một Error
được ném ra, tương tự như sau:
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
});
Nếu ném một Error
tất cả là tốt và nếu không phải là một thông điệp được định dạng đẹp sẽ được hiển thị trên, tương tự như sau:
myFunction() should throw Error
Result: No exception was thrown.
sau đó tôi sử dụng try/catch
cho các bài kiểm tra mà phải đảm bảo không có Error
được ném ra, tương tự như sau:
012.
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");
});
Nếu ném trên không Error
tất cả là tốt và nếu một Error
được ném nhắn được định dạng đẹp được hiển thị, tương tự như sau:
myFunction() should not throw an Error
Source: ...
việc kiểm tra này http://stackoverflow.com/questions/10190392/asserting-that-a-function-ném-ngoại lệ-với-qunit nó có thể giúp – hanane