Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 返回基元类型的方法的重新实现_Java_Unit Testing_Testing_Mocking_Easymock - Fatal编程技术网

Java 返回基元类型的方法的重新实现

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

我需要使用EasyMock重新实现模拟方法。该方法定义为返回原语值

对于模拟的重新实现方法,《EasyMock用户指南》建议如下:

  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