重新实现 returns 原始类型的方法
Re-implementation of method which returns primitive type
我需要使用 EasyMock 重新实现模拟方法。该方法被定义为 return 原始值。
对于模拟的重新实现方法,EasyMock 用户指南推荐这种方式:
expect(l.remove(10)).andAnswer(new IAnswer<String>() {
public String answer() throws Throwable {
return getCurrentArguments()[0].toString();
}
});
这种方法对我不适用,因为我需要使用primitive return类型.
在指南中,还有另一种方法andDelegateTo
。我需要使用 andAnswer
方法,而不是 andDelegateTo
,因为:
- 我模拟了一个 class,而不是一个接口
- 当使用
andDelegateTo
时,我必须创建模拟类型的匿名 class,它将调用其构造函数之一,这不是我的情况的选项。
使用原始类型的包装器class,例如:
List listMock = EasyMock.createMock(List.class);
EasyMock.expect(listMock.isEmpty()).andAnswer(new IAnswer<Boolean>() {
@Override
public Boolean answer() throws Throwable {
return true;
}
});
我需要使用 EasyMock 重新实现模拟方法。该方法被定义为 return 原始值。
对于模拟的重新实现方法,EasyMock 用户指南推荐这种方式:
expect(l.remove(10)).andAnswer(new IAnswer<String>() {
public String answer() throws Throwable {
return getCurrentArguments()[0].toString();
}
});
这种方法对我不适用,因为我需要使用primitive return类型.
在指南中,还有另一种方法andDelegateTo
。我需要使用 andAnswer
方法,而不是 andDelegateTo
,因为:
- 我模拟了一个 class,而不是一个接口
- 当使用
andDelegateTo
时,我必须创建模拟类型的匿名 class,它将调用其构造函数之一,这不是我的情况的选项。
使用原始类型的包装器class,例如:
List listMock = EasyMock.createMock(List.class);
EasyMock.expect(listMock.isEmpty()).andAnswer(new IAnswer<Boolean>() {
@Override
public Boolean answer() throws Throwable {
return true;
}
});