Tôi có thể kiểm tra xem Ngoại lệ cụ thể là không phải là được ném không?Làm cách nào để kiểm tra xem một ngoại lệ cụ thể có bị ném không?
Vòng tròn khác dễ dàng sử dụng @Test[expect=MyException]
.
Nhưng làm cách nào tôi có thể phủ nhận điều này?
Tôi có thể kiểm tra xem Ngoại lệ cụ thể là không phải là được ném không?Làm cách nào để kiểm tra xem một ngoại lệ cụ thể có bị ném không?
Vòng tròn khác dễ dàng sử dụng @Test[expect=MyException]
.
Nhưng làm cách nào tôi có thể phủ nhận điều này?
Nếu bạn muốn kiểm tra nếu một ngoại lệ đặc biệt là không ném vào một điều kiện mà trường hợp ngoại lệ khác có thể được ném, hãy thử này:
try {
myMethod();
}
catch (ExceptionNotToThrow entt){
fail("WHOOPS! Threw ExceptionNotToThrow" + entt.toString);
}
catch (Throwable t){
//do nothing since other exceptions are OK
}
assertTrue(somethingElse);
//done!
catch-exception làm cho ví dụ về Freiheit ngắn gọn hơn một chút :
Bạn có thể làm như sau sử dụng assertj
nếu bạn muốn kiểm tra xem ngoại lệ không được ném sau đó
Throwable throwable = catchThrowable(() -> sut.method());
assertThat(throwable).isNull();
hoặc bạn mong đợi để ném
Throwable throwable = catchThrowable(() -> sut.method());
assertThat(throwable).isInstanceOf(ClassOfExecption.class)
.hasMessageContaining("expected message");
này sẽ kiểm tra, rằng ngoại lệ được ném. Nó sẽ thất bại nếu ngoại lệ không được ném. Vì vậy, nó đã làm những gì bạn muốn (?) – oers
Hãy làm rõ câu hỏi của bạn – nowaq
Tiêu đề của bạn (cả trước và sau khi chỉnh sửa) mâu thuẫn với văn bản câu hỏi của bạn. Cụ thể bạn đang cố gắng làm gì? –