我不知道如何在抽象类中填充地图(模拟)。我有这个架构:
抽象类具有成员Map:
abstract class Parent{
protected Map<Integer, Example> map;
protected abstract void methodForChild();
protected Object doSomthingStaff(){
Object o = map.get(...);
//...
}
}
现在,我正在测试子类,并且我必须模拟父类来调用某些方法。如何在父模拟类中填充和使用map?
我有这张地图的二传手。但是例如当我下一步时:
Map<String, Example> mapExample = new HashMap<>();
mapExample.put(putDataHere);
Parent mockParent = Mockito.mock(Parent.class);
mockParent.setMap(mapExample);
我正在测试时地图未填满。
我应该100%使用Mockito.CALLS_REAL_METHODS还是存在解决此问题的正确方法?
最佳答案
现在我正在测试子类,并且我必须模拟父类来
调用一些方法
我不希望您在测试子类时模拟父类(坦率地说,不确定如何做到)我希望您模拟一个类,该类用作被测类的组件。
注意:
Parent mockParent = Mockito.mock(Parent.class);
mockParent.setMap(mapExample);
不会执行任何操作,因为您要在模拟程序上调用
setMap()
,并且实际上不会执行任何操作。我怀疑那是你的问题。关于java - 如何在抽象模拟类中填充Map?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43070403/