我一直在讲道处理异常并且如果有的话就失败了测试(例如下面给出的例子)。但是,它真的是一种正确的方法吗?无论如何,测试跑步者将执行执行。为什么我们需要这样做?预见你的想法。
示例:假设A.a()抛出异常
@Test
public void exampleExceptionTest(){
try{
A.a();
//Assertion
}
catch(Exception e){
assert.fail();
}
}
我应该将上述内容改写成,
@Test
public void exampleExceptionTest()throws Exception{
A.a();
//Assertion
}
答案 0 :(得分:2)
没有理由在单元测试中捕获异常,因此您可以执行显式fail()
。如果遇到意外异常,测试将失败,因此最佳做法是在第二个代码段中执行:
@Test
public void exampleExceptionTest() throws Exception {
A.a();
//Assertion
}
答案 1 :(得分:0)
您可以使用expected
注释的@Test
参数
即
@Test(expected=SomeException.class)
public void exampleExceptionTest() {
A.a();
//Assertion
}