我需要使用 EasyMock 重新实现模拟方法。该方法被定义为返回原始值。
为了重新实现模拟方法,EasyMock用户指南建议采用这种方式:
expect(l.remove(10)).andAnswer(new IAnswer<String>() {
public String answer() throws Throwable {
return getCurrentArguments()[0].toString();
}
});
这种方法不适用于我,因为我需要使用原始返回类型。
在指南中,andDelegateTo
还有另一种方法。我需要使用andAnswer
方法,而不是andDelegateTo
,因为:
andDelegateTo
时,我必须创建一个模拟类型的匿名类,它将调用它的一个构造函数,这不是我的选项。答案 0 :(得分:2)
使用基本类型的包装类,例如:
List listMock = EasyMock.createMock(List.class);
EasyMock.expect(listMock.isEmpty()).andAnswer(new IAnswer<Boolean>() {
@Override
public Boolean answer() throws Throwable {
return true;
}
});