假设我想模拟具有以下签名的方法:
public A foo(A a)
我希望 foo 以返回它收到的内容的方式被嘲笑(即同一个实例 a)
我尝试了以下失败:
Capture<A> capture = new Capture();
expect(myclass.foo(capture)).andReturn(capture.getValue());
这不起作用,因为调用 getValue() 时捕获仍然是空的。
有任何想法吗?
谢谢
假设我想模拟具有以下签名的方法:
public A foo(A a)
我希望 foo 以返回它收到的内容的方式被嘲笑(即同一个实例 a)
我尝试了以下失败:
Capture<A> capture = new Capture();
expect(myclass.foo(capture)).andReturn(capture.getValue());
这不起作用,因为调用 getValue() 时捕获仍然是空的。
有任何想法吗?
谢谢
public class A {
public <A> A foo(A a) {
return null;
}
public static void main(String[] args) throws Exception {
A mock = createNiceMock(A.class);
expect(mock.foo(anyObject())).andAnswer(new IAnswer<Object>() {
@Override
public Object answer() throws Throwable {
return EasyMock.getCurrentArguments()[0];
}
}).anyTimes();
replay(mock);
System.out.println(mock.foo("1"));
System.out.println(mock.foo(2L));
}
}
打印出来:
1
2