顾名思义,问题是这样的:我有AdesioneMerger
的模拟,我必须调用真正的merge
方法。 merge
是无效方法。
这是错误的:
adesioneMerger = Mockito.spy(AdesioneMerger.class);
Mockito.when(adesioneMerger.merge(
Matchers.any(AdesioneBean.class),
Matchers.any(Adesione.class),
Matchers.any(ServiceResultBean.class))
).ThenCallRealMethod();
怎么了?
答案 0 :(得分:0)
对于void方法,请使用备用API:
Mockito.doCallRealMethod()
.when(adesioneMerger).merge(
Matchers.any(AdesioneBean.class),
Matchers.any(Adesione.class),
Matchers.any(ServiceResultBean.class));
问题在于Mockito.when()
需要一个参数(Java中没有空类型的参数)。替代的API通过在模拟类型上调用when()
来解决此问题,并在when(...)
的返回值上调用模拟的实际方法。
答案 1 :(得分:0)
尝试这种方式:
doCallRealMethod().when(adesioneMerger).merge(
Matchers.any(AdesioneBean.class),
Matchers.any(Adesione.class),
Matchers.any(ServiceResultBean.class);