作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在尝试编写 JUnit 测试用例时遇到了一个问题,我对 Mockito 比较陌生。
我有一个我正在模拟的类的函数,这个函数恰好是一个 void 返回类型。当从我的模拟类调用这个函数时,我的理解(和调试经验)它不调用原始函数。为了克服这个问题,我尝试将“when”与“thenCallRealMethod()”结合使用。
when(instance.voidFunction()).thenCallRealMethod();
“voidFunction”充满了我不想触发的逻辑。我已将这些提取到 when 语句中以避免这种情况。我读过我应该使用
doReturn().when().voidFunction()
的格式,但是这样做并不会调用真正的方法。
voidFunction()
在“when”语句之前调用。感谢任何帮助,如果这是一个非常简单的解决方案,我深表歉意,因为尽管阅读了很多书,但我对 mockito 的理解并不是很好。谢谢!
最佳答案
when
语法不适用于 void 方法(它不适合 when
)和 doReturn
没有返回值时不适用。 doCallRealMethod
很可能就是你想要的答案。
doCallRealMethod().when(instance).voidFunction();
doCallRealMethod
的模拟。或
thenCallRealMethod
.使用 spy ,您可以创建类的真实实例,然后是
Mockito.spy
方法将复制该实例状态以进行更真实的交互。
关于unit-testing - Mockito - thenCallRealMethod() 在 void 函数上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39881717/
我有以下代码: when(mockedOperation.getResult(anyDouble(), anyDouble())).thenCallRealMethod(); when(mockedO
我有一个关于使用 Mockito thenCallRealMethod 的问题。我已阅读有关使用此功能的警告;基本上我想把它写到我的测试中来证明我的应用程序逻辑,因为它被用作一个库,我想确保我的库的用
我在尝试编写 JUnit 测试用例时遇到了一个问题,我对 Mockito 比较陌生。 我有一个我正在模拟的类的函数,这个函数恰好是一个 void 返回类型。当从我的模拟类调用这个函数时,我的理解(和调
我是一名优秀的程序员,十分优秀!