最初接触 Mockito 还思考并尝试过如何用它来 mock 返回值为 void 的方法,然而 Google 查找到的一般都会说用 doThrow() 的办法
doThrow(new RuntimeException()).when(mockObject).methodWithVoidReturn();
因为无法使用常规的 when(mockObject.foo()).thenReturn(...) 的方法。
当时我就纳闷,为何我想 mock 一个返回值为 void 的方法,却是在模拟抛出一个异常,现在想来如果一个返回值为 void 的方法,为何要去 mock 这个方法呢?
回想一个我们要 mock 一个方法的意图是什么:
- 在特定输入参数的情况下期待需要的输出结果(返回值)
- 在方法抛出某种类型异常调用者作出的反应
对于 void 返回值的方法,如果要验证有没有被调用过几次可以在事后用 verify() 方法去断言。所以基本上对于 void 返回值的方法一般可不用去 mock 它,只需用 verify() 去验证,或者就是像前面一样模拟出现异常时的情况。
所以本文并不像是去直接回答标题所示的问题: Mockito 如何 mock 返回值为 void 的方法,而是如何应对 mock 对象的 void 方法 阅读全文 >>
Mockito与void方法
本文探讨了在单元测试中如何处理返回void的方法。通常情况下,我们不需要mock这些方法,而应使用verify()来检查它们是否被正确调用。文中解释了mock void方法背后的逻辑,并讨论了如何模拟异常情况。
4800

被折叠的 条评论
为什么被折叠?



