Có tương đương với ExpectedException NUnit hoặc Assert.Throws <> trong jUnit không?ExpectedException trong jUnit?
8
A
Trả lời
7
Junit4:
@Test(expected = org.dom4j.DocumentException.class)
void shouldThrowException() {
getFile(null);
}
junit3:
void testShouldThrowException() {
try {
getFile(null);
fail("Expected Exception DocumentException");
} catch(DocumentException e) {}
}
11
Bạn cũng có thể xem xét tham gia một cái nhìn tại các lớp ExpectedException cung cấp phù hợp ngoại lệ phong phú hơn.
https://github.com/junit-team/junit/wiki/Exception-testing
Không chỉ bạn có thể phù hợp với lớp ngoại lệ nhưng bạn cũng có thể áp dụng quẹt tùy chỉnh để thông điệp của mình.
2
Nếu bạn đang sử dụng Groovy cho các bài kiểm tra junit, bạn có thể sử dụng shouldFail.
Dưới đây là một ví dụ sử dụng phong cách junit3:
void testShouldThrowException() {
def message = shouldFail(DocumentException) {
documentService.getFile(null)
}
assert message == 'Document could not be saved because it ate the homework.'
}
chỉ có sẵn trong Junit4 – jitter
Tôi đã cập nhật câu trả lời này để bao gồm một cách để làm điều này trong jUnit3 – j4y
Những điều tốt về cách tiếp cận "JUnit3" là bạn sau đó có thể viết một trường hợp ngoại lệ-test cho mỗi dòng, trong khi bạn cần năm dòng cho mỗi phương thức có cách tiếp cận "JUnit4". Xem câu trả lời của tôi để biết thêm thông tin: http://stackoverflow.com/a/15385613/974531 –