我正在使用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]);
}});