1

我正在使用 EasyMocks。
在方法内部创建了一个新对象。并在该对象上调用一个方法,该方法返回一个地图。如下图

test(){
   Fun f= new Fun();
    Map m =f.getaMap();
}

那时我想返回一个自定义地图。我该怎么做。
谢谢。

4

1 回答 1

2

我从您的代码中猜测您已经给了我们一个测试方法,您可以在其中测试Fun并查看产生的Map结果Fun

依赖注入 aMapFactory创建Mapfor Fun。我不确定 EasyMock 的语法,所以mockMapFactory这里是模拟对象,它上面会有一个方法来为你创建一个地图。模拟该方法以生成地图,然后在您的类中调用该方法,而不是使用new.

test() {

    Fun f= new Fun(mockMapFactory);
    Map m =f.getaMap();
}

看看工厂设计模式,这是一种非常好的方法,可以让您避免调用new,以便您可以模拟对象的创建(以及对象本身,如果需要)。这也意味着你的类不再负责决定它创建什么样的对象。

当您测试工厂时,您将无法在其工厂内模拟 Map 的创建。没关系。要么通过检查来测试它,要么只是检查你是否得到了正确的物体。

于 2011-01-13T21:08:02.723 回答