繁体   English   中英

Mockito:如何使用模拟函数的参数?

[英]Mockito: how to use a parameter of a mocked function?

我正在使用Mockito,并想做类似的事情:

Mockito.doReturn(new MyObject(capturedParameter))
    . when(mockedCreatorInstance).findByParameter(anyString())

因此,当有人调用方法mockedCreatorInstance.findByParameter("XXXX") ,返回的值将是new MyObject("XXXX")

如您所见,嘲笑的方法签名的mockedCreatorInstance将是

MyObject findByParameter(String parameter);

我尝试使用ArgumentCaptor<String>但失败了。

我应该怎么做才能使其正常工作?

Mockito文档建议在存根而不是验证时不要使用ArgumentCaptor <>。

我相信您可以通过答案实现您想要的:

when(mockedCreatorInstance.findByParameter(anyString()))
    .thenAnswer(new Answer<MyObject>() {
        public MyObject answer(InvocationOnMock invocation) {
            Object[] args = invocation.getArguments();
            return new MyObject((String) args[0]);
        }});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM