Java 返回基元类型的方法的重新实现
我需要使用EasyMock重新实现模拟方法。该方法定义为返回原语值 对于模拟的重新实现方法,《EasyMock用户指南》建议如下:Java 返回基元类型的方法的重新实现,java,unit-testing,testing,mocking,easymock,Java,Unit Testing,Testing,Mocking,Easymock,我需要使用EasyMock重新实现模拟方法。该方法定义为返回原语值 对于模拟的重新实现方法,《EasyMock用户指南》建议如下: expect(l.remove(10)).andAnswer(new IAnswer<String>() { public String answer() throws Throwable { return getCurrentArguments()[0].toString(); } }); expect(l.rem
expect(l.remove(10)).andAnswer(new IAnswer<String>() {
public String answer() throws Throwable {
return getCurrentArguments()[0].toString();
}
});
expect(l.remove(10))和answer(new IAnswer)(){
公共字符串answer()抛出可丢弃的{
返回getCurrentArguments()[0]。toString();
}
});
这种方法不适用于我,因为我需要使用基本返回类型
在指南中,还有另一种使用和delegateto
的方法。我需要使用和回答方法,而不是和委托给,因为:
- 我模拟一个类,而不是一个接口
- 当使用
和delegateto
时,我必须创建mocked类型的匿名类,它将调用它的一个构造函数,这对于我的情况来说不是一个选项
使用原语类型的包装器类,例如:
List listMock=EasyMock.createMock(List.class);
expect(listMock.isEmpty())和answer(new IAnswer()){
@凌驾
public Boolean answer()抛出可丢弃的{
返回true;
}
});
使用原语类型的包装器类,例如:
List listMock=EasyMock.createMock(List.class);
expect(listMock.isEmpty())和answer(new IAnswer()){
@凌驾
public Boolean answer()抛出可丢弃的{
返回true;
}
});
尝试使用包装类型:int->Integer、boolean->boolean等。和answer
与和delegateto
是等效的。后者允许一个类型化的解决方案。如果你想监视一个类,可能会很有用。@Henri andAnswer和andDelegateTo在用法上是不等价的:任何注释都可以尝试使用包装类型:int->Integer,boolean->boolean,等等。andAnswer
和andDelegateTo
是等价的。后者允许一个类型化的解决方案。如果你想监视一个类,可能会很有用。@Henri和answer以及andDelegateTo在用法上并不等同:那里的任何注释都是有用的。这是正确的答案。所有基本类型都可以包装在IAnswer
中这是正确的答案。所有基元类型都可以包装在IAnswer