MOCKITO:如何使用模拟功能的参数



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

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

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

如您所见,mockedCreatorInstance的模拟方法签名将为

MyObject findByParameter(String parameter);

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

我该怎么做才能使它起作用?

Mockito文档建议不要在固定而不是验证时使用参数captor&lt;>。

我相信您可以通过答案来实现自己想要的东西:

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

相关内容

  • 没有找到相关文章

最新更新