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;
  }
 }