Exception 异常断言和其他断言jUnit
我有一个抛出异常的方法。我有一个这样的测试Exception 异常断言和其他断言jUnit,exception,junit,junit4,junit-rule,Exception,Junit,Junit4,Junit Rule,我有一个抛出异常的方法。我有一个这样的测试 @Rule public ExpectedException expectedEx = ExpectedException.none(); @Test public void shouldThrowExceptionIfValidationFails() throws Exception { doThrow(new InvalidException("Invalid Token")).when(obj).foo(any()); ex
@Rule
public ExpectedException expectedEx = ExpectedException.none();
@Test
public void shouldThrowExceptionIfValidationFails() throws Exception {
doThrow(new InvalidException("Invalid Token")).when(obj).foo(any());
expectedEx.expect(InvalidException.class);
expectedEx.expectMessage("Invalid Token");
// my method call
// verify DB save doesn't happens
assertTrue(false);
}
异常的测试断言,由于抛出了异常,测试通过。它不关心最后一行assertTrue(false)
如何确保我的其他断言也得到满足。这是我在本例中遵循的模式。它按设计使用
ExpectedException
。我喜欢抛出e
而不是在try
中的方法调用之后失败,因为如果有人决定删除失败
(当人们看到失败()
或者测试失败是因为它遇到了失败()
),它不会导致误报
这就是我在这个案例中遵循的模式。它按设计使用
ExpectedException
。我喜欢抛出e
而不是在try
中的方法调用之后失败,因为如果有人决定删除失败
(当人们看到失败()
或者测试失败是因为它遇到了失败()
),它不会导致误报
@Test
public void shouldThrowExceptionIfValidationFails() throws Exception {
doThrow(new InvalidException("Invalid Token")).when(obj).foo(any());
expectedEx.expect(InvalidException.class);
expectedEx.expectMessage("Invalid Token");
try{
// my method call
}catch(InvalidException e){
// verify DB save doesn't happens
assertTrue(false);
throw e;
}
}