重新实现返回原始类型的方法

时间:2016-11-14 15:57:06

标签: 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();
    }
  });

这种方法不适用于我,因为我需要使用原始返回类型

在指南中,andDelegateTo还有另一种方法。我需要使用andAnswer方法,而不是andDelegateTo,因为:

  • 我模拟了一个类,而不是一个接口
  • 当使用andDelegateTo时,我必须创建一个模拟类型的匿名类,它将调用它的一个构造函数,这不是我的选项。

1 个答案:

答案 0 :(得分:2)

使用基本类型的包装类,例如:

List listMock = EasyMock.createMock(List.class);

EasyMock.expect(listMock.isEmpty()).andAnswer(new IAnswer<Boolean>() {

    @Override
    public Boolean answer() throws Throwable {
        return true;
    }
});