我写了一个Junit测试来测试我的代码.当我的代码中出现任何异常时,我希望我的Junit测试用例失败.我尝试使用assert语句,但即使我的代码中出现异常,我的Junit测试用例也正在通过.请有人能告诉我如何实现这一目标吗?谢谢.
小智 21
我强烈建议您必须仅测试您的功能.如果抛出异常,测试将自动失败.如果没有抛出异常,您的测试将全部变为绿色.
但是,如果您仍然希望编写在异常情况下应该失败的测试代码,请执行以下操作: -
@Test
public void foo(){
try{
//execute code that you expect not to throw Exceptions.
}
catch(Exception e){
fail("Should not have thrown any exception");
}
}
Run Code Online (Sandbox Code Playgroud)
实际上,当抛出代码中的异常时,您的测试应该失败.当然,如果您捕获此异常并且不进一步抛出它(或任何其他异常),测试将不会知道它.在这种情况下,您需要检查方法执行的结果.示例测试:
@Test
public void test(){
testClass.test();
}
Run Code Online (Sandbox Code Playgroud)
测试失败的方法:
public void test(){
throw new RuntimeException();
}
Run Code Online (Sandbox Code Playgroud)
不会使测试失败的方法
public void test(){
try{
throw new RuntimeException();
} catch(Exception e){
//log
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20845 次 |
| 最近记录: |