我在junit测试中使用mockito。如何使异常发生,然后断言它已经发生(泛型伪代码)?
发布于 2013-04-27 03:12:14
先回答你的第二个问题。如果你使用的是JUnit 4,你可以用注释你的测试
@Test(expected=MyException.class)
断言已发生异常。要使用mockito“模拟”异常,请使用
when(myMock.doSomething()).thenThrow(new MyException());
发布于 2016-12-30 03:58:17
如果您还想测试异常消息,您可以使用JUnit的ExpectedException和Mockito:
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Test
public void testExceptionMessage() throws Exception {
expectedException.expect(AnyException.class);
expectedException.expectMessage("The expected message");
given(foo.bar()).willThrow(new AnyException("The expected message"));
}
发布于 2016-10-21 21:16:49
如果您使用的是Mockito4和JUnit 1.10.x,请使用以下命令注释您的测试方法:
@Test(expected = AnyException.class)
要抛出所需的异常,请使用:
Mockito.doThrow(new AnyException()).when(obj).callAnyMethod();
https://stackoverflow.com/questions/16243580
复制相似问题