如何使用 Mockito 将模拟注入抽象父类中的 @Autowired 字段

Dom*_*ész 6 java mockito superclass

我正在为一个具有抽象超类的类编写单元测试,ChildClass 中的函数之一是调用 BaseClass 对象上的方法。

ChildClass看起来像这样。

public class ChildClass extends ParentClass {
    public void functionA(){
        objectFromParentClass.functionB();
    }
}
Run Code Online (Sandbox Code Playgroud)

父类

public abstract class ParentClass {
    @Autowired
    protected typeFromParentClass objectFromParentClass;

    public void someFunction() {}
}
Run Code Online (Sandbox Code Playgroud)

由于父类是抽象的@InjectMocksReflectionTestUtils()不起作用。有什么办法可以用 Mockito 注入模拟objectFromParentClassParentClass

编辑: Child 和 Parent 类都不是我编写的,我只是测试它。

Dom*_*ész 7

ReflectionTestUtils.setField()在这种情况下有效