最初接触 Mockito 还思考并尝试过如何用它来 mock 返回值为 void 的方法,然而 Google 查找到的通常都会说用 doThrow()
的办法code
doThrow(new RuntimeException()).when(mockObject).methodWithVoidReturn();对象
由于没法使用常规的 when(mockObject.foo()).thenReturn(...)
的方法。get
当时我就纳闷,为什么我想 mock 一个返回值为 void 的方法,倒是在模拟抛出一个异常,如今想来若是一个返回值为 void 的方法,为什么要去 mock 这个方法呢?it
回想一个咱们要 mock 一个方法的意图是什么:io
- 在特定输入参数的状况下期待须要的输出结果(返回值)
- 在方法抛出某种类型异常调用者做出的反应
对于 void 返回值的方法,若是要验证有没有被调用过几回能够在过后用 verify()
方法去断言。因此基本上对于 void 返回值的方法通常可不用去 mock 它,只需用 verify() 去验证,或者就是像前面同样模拟出现异常时的状况。class
因此本文并不像是去直接回答标题所示的问题: Mockito 如何 mock 返回值为 void 的方法,而是如何应对 mock 对象的 void 方法 阅读全文 >>mock