java – 为什么thenCallRealMethod()在这里丢失了参数?
发布时间:2020-05-24 23:00:36 所属栏目: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中,我也嘲笑了这个非常的操作,并且,当看起来,当一个人重新定义模拟时,会发生一些黑魔法,结果就像我已经描述过的那样 – 参数在某种程度上已经丢失了.(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |