让我们举个例子(注意我使用的是 PowerMock - Mockito)
Class A {
public void method1(Object obj)
{
}
}
现在,当我们使用 mockito 时,我们有类似 when(A.method1(obj2)).thenReturn(obj3); 的 api。我们可以在测试用例中访问传递给 method1 的原始对象 obj,而不是在调用方法时返回自定义对象 obj3 吗?
您将需要使用thenAnswer()
. 我相信签名应该是
public Object method1(Object obj)
不确定为什么要将相同的对象返回到您从测试中通过的测试中。在这种情况下,您实际上要测试什么?
更新
看起来你正在寻找的是ArgumentCaptor
ArgumentCaptor<Object> captor = ArgumentCaptor.forClass(Object.class);
verify(a).method1(captor.capture());
Object realObject = captor.getValue()