Mockito 测试 void 方法抛出异常

新手上路,请多包涵

我有一个返回类型为 void 的方法。它还可以抛出许多异常,所以我想测试抛出的那些异常。由于相同的原因,所有尝试都失败了:

Stubber 类型中的 when(T) 方法不适用于参数 (void)

有什么想法可以让方法抛出指定的异常吗?

 doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));

原文由 edwardmlyte 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

括号放置不当。

您需要使用:

 doThrow(new Exception()).when(mockedObject).methodReturningVoid(...);
                                          ^

并且 使用:

 doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));
                                                                   ^

这在 文档 中有解释

原文由 JB Nizet 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果你想知道如何使用 Mockito 的新 BDD 风格来做到这一点:

 willThrow(new Exception()).given(mockedObject).methodReturningVoid(...));

为了将来参考,可能需要抛出异常然后什么都不做:

 willThrow(new Exception()).willDoNothing().given(mockedObject).methodReturningVoid(...));

原文由 Ondrej Burkert 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题