我尝试测试我的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();
}
}
答案 0 :(得分:1)
如果你想测试Exception
,那就按照正确的方式进行测试。
定义何时抛出异常。
@BeforeClass
中的@Test
- 方法,如果只有这个方法应该抛出它。请注意,如果其他方法获得了其他值,则可以使用any(X.class)
。
在单元测试中不要尝试捕获。
以这种方式捕获它,如果没有Exception
,测试将失败。
@Test(expected = PatientNotFoundException.class)
public void shouldThrow()
pef.findByNumber(5555);
}