最佳答案
在尝试编写 JUnit 测试用例时,我遇到了一个问题,而且我对 Mockito 相对比较陌生。
我有一个我正在模仿的类的函数,这个函数恰好是一个 void 返回类型。当从我的模拟类调用这个函数时,我的理解(和调试经验)是它不调用原始函数。为了克服这个问题,我尝试使用“ then CallRealMethod ()”中的“ when”。
when(instance.voidFunction()).thenCallRealMethod();
“ voidFunction”充满了我不想触发的逻辑。为了避免这种情况,我将这些语句提取到 when 语句中。我曾经读到过我应该使用 doReturn().when().voidFunction()
的格式,但是这样做并不能调用真正的方法。
我也理解我不能在这里使用间谍,因为我不希望在“ when”语句之前调用 voidFunction()
。如果这是一个非常简单的解决方案,我道歉,因为我对仿声的理解不是很好,尽管读了很多。谢谢!