我正在使用 EasyMocks。
在方法内部创建了一个新对象。并在该对象上调用一个方法,该方法返回一个地图。如下图
test(){
Fun f= new Fun();
Map m =f.getaMap();
}
那时我想返回一个自定义地图。我该怎么做。
谢谢。
我正在使用 EasyMocks。
在方法内部创建了一个新对象。并在该对象上调用一个方法,该方法返回一个地图。如下图
test(){
Fun f= new Fun();
Map m =f.getaMap();
}
那时我想返回一个自定义地图。我该怎么做。
谢谢。
我从您的代码中猜测您已经给了我们一个测试方法,您可以在其中测试Fun
并查看产生的Map
结果Fun
。
依赖注入 aMapFactory
创建Map
for Fun
。我不确定 EasyMock 的语法,所以mockMapFactory
这里是模拟对象,它上面会有一个方法来为你创建一个地图。模拟该方法以生成地图,然后在您的类中调用该方法,而不是使用new
.
test() {
Fun f= new Fun(mockMapFactory);
Map m =f.getaMap();
}
看看工厂设计模式,这是一种非常好的方法,可以让您避免调用new
,以便您可以模拟对象的创建(以及对象本身,如果需要)。这也意味着你的类不再负责决定它创建什么样的对象。
当您测试工厂时,您将无法在其工厂内模拟 Map 的创建。没关系。要么通过检查来测试它,要么只是检查你是否得到了正确的物体。