Java 如何使用mockito进入模拟对象的arrow方法调用

Java 如何使用mockito进入模拟对象的arrow方法调用,java,unit-testing,testing,mockito,powermockito,Java,Unit Testing,Testing,Mockito,Powermockito,我有下面这个方法,我需要使用Mockito进行测试。在这个方法中,有一个模拟类对象“refDataCache”,它调用一个方法,其中有一个arrow函数。如何编写测试,这样我就可以进入refDataCache.forAllMetaBlock方法并检查metaBlockEntity.getMetaBlockId()和metaBlockEntity.getCode() //测试代码类片段 公共类MetaInfoControllerTest{ 元信息控制器元信息控制器; @嘲弄 RefDataCach

我有下面这个方法,我需要使用Mockito进行测试。在这个方法中,有一个模拟类对象“refDataCache”,它调用一个方法,其中有一个arrow函数。如何编写测试,这样我就可以进入
refDataCache.forAllMetaBlock
方法并检查
metaBlockEntity.getMetaBlockId()
metaBlockEntity.getCode()

//测试代码类片段
公共类MetaInfoControllerTest{
元信息控制器元信息控制器;
@嘲弄
RefDataCache-RefDataCache;
@以前
在()之前公开无效{
initMocks(this);
metaInfoController=新的metaInfoController(refDataCache);
}
}
//实际方法//
@GetMapping(“/metaBlocks”)
公共映射getMetaBlock(){
Map response=newhashmap();
refDataCache.forAllMetaBlock(metaBlockEntity->
response.put(Long.toString(metaBlockEntity.getMetaBlockId()),metaBlockEntity.getCode())
);
返回响应;
}

我的测试代码永远无法进入
refDataCache内部。对于allmetablock
,它在调试时直接跳转到
返回响应

您如何模拟
refDataCache
?在问题中包括有关这方面的详细信息。比如它是间谍还是模拟,等等。这正是mockito的工作原理-您有一个未受攻击的方法(仅因其副作用而调用),因此mockito忽略了该调用。尚不清楚什么是refDataCache,以及模拟它是否是正确的做法。@GauthamM添加了的模拟代码refDataCache@LesiakrefDataCache需要模拟,在这种情况下,refDataCache只是调用一个带有箭头函数的方法,在以前的所有情况下,refDataCache都只使用一个或两个参数调用void方法或methpds。此外,refDataCache是一个反编译类。
// Test code class snippet
public class MetaInfoControllerTest {
    MetaInfoController metaInfoController;
    @Mock
    RefDataCache refDataCache;
    @Before
    public void before() {
        MockitoAnnotations.initMocks(this);
        metaInfoController = new MetaInfoController(refDataCache);
    }
}

// Actual Method //
@GetMapping("/metaBlocks")
    public Map<String, String> getMetaBlock() {
        Map<String, String> response = new HashMap<>();
        refDataCache.forAllMetaBlock(metaBlockEntity ->
                response.put(Long.toString(metaBlockEntity.getMetaBlockId()), metaBlockEntity.getCode())
        );
        return response;
    }