我使用Mockito并希望做类似的事情:
Mockito.doReturn(new MyObject(capturedParameter))
. when(mockedCreatorInstance).findByParameter(anyString())
因此,当有人调用方法mockedCreatorInstance.findByParameter("XXXX")
时,返回的值将为new MyObject("XXXX")
。
如您所见,mockedCreatorInstance
的模拟方法签名将是
MyObject findByParameter(String parameter);
我使用ArgumentCaptor<String>
尝试过但却失败了。
我该怎么做才能让它发挥作用?
答案 0 :(得分:2)
Mockito文档建议在存根而不是验证时不要使用ArgumentCaptor&lt;&gt ;.
我相信你可以通过答案实现你想要的目标:
when(mockedCreatorInstance.findByParameter(anyString()))
.thenAnswer(new Answer<MyObject>() {
public MyObject answer(InvocationOnMock invocation) {
Object[] args = invocation.getArguments();
return new MyObject((String) args[0]);
}});