我不知道如何在抽象类中填充地图(模拟)。我有这个架构:

抽象类具有成员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/

10-11 22:30
查看更多