java – 为什么thenCallRealMethod()在这里丢失了参数?
发布时间:2020-12-15 03:10:37 所属栏目:Java 来源:网络整理
导读:我有以下代码: when(mockedOperation.getResult(anyDouble(),anyDouble())).thenCallRealMethod();when(mockedOperation.division(anyDouble(),not(eq(0d)))).thenCallRealMethod(); 操作类似于Command模式 – 它封装了一些具体的操作,在本例中是简化 – 除
我有以下代码:
when(mockedOperation.getResult(anyDouble(),anyDouble())).thenCallRealMethod(); when(mockedOperation.division(anyDouble(),not(eq(0d)))).thenCallRealMethod(); 操作类似于Command模式 – 它封装了一些具体的操作,在本例中是简化 – 除法操作.结果检索不是直接发生的,而是通过契约方法,比如getResult(arg1,arg2).所以,我打电话 mockedOperation.division(10d,3d); 但是(从我在具体实现的Operation中调试信息)我可以看到division()不是10和3而是(0,0). 据我所知,这些参数在thenCallRealMethod()之间由getResult()丢失,之后调用real division(). 这种行为的原因是什么?如果我确实需要它,我应该如何正确地实现部分模拟? UPD.也许我应该试着用另一种方式说,例如,你如何创建callRealMethod的模拟方法,使参数正确地传递给端点? 解决方法
好的,问题现在解决了.事实证明我刚刚在Mockito中遇到了另一个未记录的功能/错误(或者我刚刚找不到文档的功能).问题在于,在我的@Before中,我也嘲笑了这个非常的操作,并且,当看起来,当一个人重新定义模拟时,会发生一些黑魔法,结果就像我已经描述过的那样 – 参数在某种程度上已经丢失了.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 每个循环工作的Java
- java – 具有键值映射和排序的数据结构
- java – 在增强型for循环中为循环变量使用final的目的是什么
- 当Java程序突然退出时,是否可以执行某些操作?
- java – 从map中键入不匹配的键:expected .. Text,receive
- java – Criteria Api:使用CriteriaBuilder创建空值
- java – Eclipse RCP产品中的自定义config.ini
- 是什么导致我的程序挂起而没有正常退出? (管道,读取系统调
- 这10道springboot常见面试题你需要了解下
- 转:java线程状态说明,Jstack线程状态BLOCKED/TIMED_WAITI