首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Mockito如何模拟和断言抛出的异常?

Mockito如何模拟和断言抛出的异常?
EN

Stack Overflow用户
提问于 2013-04-27 03:08:53
回答 9查看 441.5K关注 0票数 154

我在junit测试中使用mockito。如何使异常发生,然后断言它已经发生(泛型伪代码)?

EN

回答 9

Stack Overflow用户

发布于 2013-04-27 03:12:14

先回答你的第二个问题。如果你使用的是JUnit 4,你可以用注释你的测试

代码语言:javascript
复制
@Test(expected=MyException.class)

断言已发生异常。要使用mockito“模拟”异常,请使用

代码语言:javascript
复制
when(myMock.doSomething()).thenThrow(new MyException());
票数 231
EN

Stack Overflow用户

发布于 2016-12-30 03:58:17

如果您还想测试异常消息,您可以使用JUnit的ExpectedException和Mockito:

代码语言:javascript
复制
@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"));
}
票数 30
EN

Stack Overflow用户

发布于 2016-10-21 21:16:49

如果您使用的是Mockito4和JUnit 1.10.x,请使用以下命令注释您的测试方法:

代码语言:javascript
复制
@Test(expected = AnyException.class)

要抛出所需的异常,请使用:

代码语言:javascript
复制
Mockito.doThrow(new AnyException()).when(obj).callAnyMethod();
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16243580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档