Jasmine cung cấp một phương pháp toàn cầu fail()
, có thể được sử dụng bên trong khối đặc tả it()
và cũng cho phép sử dụng thông báo lỗi tùy chỉnh:
it('should finish successfully', function (done) {
MyService.getNumber()
.success(function (number) {
expect(number).toBe(2);
done();
})
.fail(function (err) {
fail('Unwanted code branch');
});
});
này được tích hợp chức năng Jasmine và nó hoạt động tốt ở khắp mọi nơi trong so sánh với phương pháp 'lỗi' tôi đã đề cập bên dưới.
Trước khi update:
Bạn có thể ném ra một lỗi từ đó chi nhánh mã, nó sẽ thất bại một spec ngay lập tức và bạn sẽ có thể cung cấp thông báo lỗi tùy chỉnh:
it('should finish successfully', function (done) {
MyService.getNumber()
.success(function (number) {
expect(number).toBe(2);
done();
})
.fail(function (err) {
throw new Error('Unwanted code branch');
});
});
Nhưng bạn nên cẩn thận, nếu bạn muốn ném một lỗi từ bộ xử lý thành công Promise then()
, bởi vì lỗi sẽ được nuốt vào đó và sẽ không bao giờ xuất hiện. Ngoài ra, bạn nên biết các trình xử lý lỗi có thể xảy ra trong ứng dụng của mình, điều này có thể gây ra lỗi này bên trong ứng dụng của bạn, do đó, kết quả là sẽ không thể thực hiện kiểm tra.
Nguồn
2015-08-27 15:01:36
Ngoài ra còn có 'done.fail ('message')'. – TrueWill
Đối với những người bị mắc kẹt trên một phiên bản cũ của Jasmine, phương pháp 'thất bại' không có sẵn trong 1.3, nhưng có thể được thực hiện một cách hiệu quả bằng cách 'ném thông báo lỗi mới' (message) '. Hiệu quả có thể phụ thuộc vào nhân vật thử nghiệm của bạn - cũng xem xét một cái gì đó như 'mong đợi ('[lý do thất bại]'). ToBeNull()'. – ryanwebjackson