Junit测试异常

时间:2017-11-09 14:32:38

标签: exception junit4

我尝试测试我的Exception JUnit并且测试没有通过我有这个错误跟踪:

org.mockito.internal.runners.JUnit45AndHigherRunnerImpl.run(JUnitAndHigherRunnerImpl.java:37)   

org.mockito.runners.MockitoJUnitRunner.run(MockitoJUnitRunner.java:62)

这是我的代码:

PatientEntityFacade pef = new PatientEntityFacade();          
Mockito.when(pef.findByNumber(5555)).thenReturn(patientEntity);        

@Rule
public ExpectedException thrown = ExpectedException.none();

@Test
public void shouldThrow() throws PatientNotFoundException
{
    thrown.expect(PatientNotFoundException.class);
    thrown.expectMessage("personalized exception no patient found");

    try {
        pef.findByNumber(5555);
    } catch (com.patient.facade.PatientNotFoundException e) {
        e.printStackTrace();
    }
 }

1 个答案:

答案 0 :(得分:1)

如果你想测试Exception,那就按照正确的方式进行测试。

定义何时抛出异常。

    如果每个方法都,则@BeforeClass中的
  • in @Test - 方法,如果只有这个方法应该抛出它。

请注意,如果其他方法获得了其他值,则可以使用any(X.class)

在单元测试中不要尝试捕获。 以这种方式捕获它,如果没有Exception,测试将失败。

@Test(expected = PatientNotFoundException.class)
public void shouldThrow()
    pef.findByNumber(5555);
}