Java junit断言已引发异常
一个比另一个好吗?如果是,原因是什么? 我倾向于第一种方法,因为我能更快地理解考试想要做什么
如果是,什么时候应该使用assertThrows()
@Test(expected=CustomException.class)
public void test_one() {
execute()
}
vs
@Test
public void test_one() {
assertThrows(CustomException.class, () -> execute());
}
# 1 楼答案
假设你的测试是这样的:
假设您想检查execute2()抛出的
CustomException
现在,如果您使用第一种方法,并且
execute1()
抛出CustomException
测试仍然会通过,您将无法知道它是否由execute2()
抛出但对于第二种方法,您可以指定希望确保异常由
execute2()
方法调用引发,因此只有当execute2()
方法引发CustomException
时,测试才会通过