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