【发布时间】:2017-03-24 17:22:29
【问题描述】:
我正在测试一个类,并想监视对特定方法的调用,即保存调用参数以供以后分析。
测试是使用EasyMock 完成的,因此使用EasyMock.capture 功能是合乎逻辑的。但是,我设法找到的示例对我不起作用 - 我在 capture 行收到以下编译错误:
EasyMock 中的expect(T) 不能应用于 (void) 原因:不存在类型变量 T 的实例,因此 void 符合 T
如果有人能为我指出我的错误,那就太好了。下面是一段代码sn-p:
import static org.easymock.EasyMock.capture;
import org.easymock.Capture;
import org.easymock.CaptureType;
import org.easymock.EasyMock;
import org.junit.Before;
class B {
}
class A {
public void doSomething(B input) {
}
}
public class ATest {
private Capture<B> capturedData;
private A testObject;
@Before
private void setUp() {
capturedData = EasyMock.newCapture(CaptureType.ALL);
testObject = EasyMock.createNiceMock(A.class);
EasyMock
.expect(testObject.doSomething(capture(capturedData)))
.anyTimes();
}
}
提前非常感谢!
【问题讨论】: