如果代码中有任何异常,如何使 Junit 测试用例失败?
我写了一个 Junit 测试来单元测试我的代码。我希望我的 Junit 测试用例在代码中出现任何异常时失败。我尝试使用 assert 语句,但即使我在代码中遇到异常,我的 Junit 测试用例也会通过。任何人都可以告诉我如何实现这一目标?谢谢。
我写了一个 Junit 测试来单元测试我的代码。我希望我的 Junit 测试用例在代码中出现任何异常时失败。我尝试使用 assert 语句,但即使我在代码中遇到异常,我的 Junit 测试用例也会通过。任何人都可以告诉我如何实现这一目标?谢谢。
我强烈建议您只测试您的功能。如果引发异常,测试将自动失败。如果未引发异常,则测试将全部变为绿色。
但是,如果您仍然想编写在异常情况下应该失败的测试代码,请执行如下操作:-
@Test
public void foo(){
try{
//execute code that you expect not to throw Exceptions.
}
catch(Exception e){
fail("Should not have thrown any exception");
}
}
实际上,当代码中引发异常时,测试应该会失败。当然,如果你抓住了这个异常,并且不进一步抛出它(或任何其他异常),测试就不会知道它。在这种情况下,您需要检查方法执行的结果。示例测试:
@Test
public void test(){
testClass.test();
}
测试失败的方法:
public void test(){
throw new RuntimeException();
}
不会失败测试的方法
public void test(){
try{
throw new RuntimeException();
} catch(Exception e){
//log
}
}