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

Java 如何使用Mockito将mock注入抽象父类中的@Autowired字段,java,mockito,superclass,Java,Mockito,Superclass,我正在为一个具有抽象超类的类编写一个单元测试,ChildClass中的一个函数正在基类的对象上调用一个方法 ChildClass看起来像这样 public class ChildClass extends ParentClass { public void functionA(){ objectFromParentClass.functionB(); } } 父类 public abstract class ParentClass { @Autowire

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

ChildClass
看起来像这样

public class ChildClass extends ParentClass {
    public void functionA(){
        objectFromParentClass.functionB();
    }
}
父类

public abstract class ParentClass {
    @Autowired
    protected typeFromParentClass objectFromParentClass;

    public void someFunction() {}
}
因为父类是抽象的
@InjectMocks
,ReflectionTestUtils()不起作用。有没有办法用Mockito将mock的
objectFromParentClass
注入到
ParentClass


编辑:子类和父类都不是我写的,我只是在测试它。

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


下面是我们为解决这个问题而编写的Junit5扩展。本质上,它获取对象的映射,并将它们注入到被测试类的字段中。非常适合InjectMock不足的地方

在父类中创建一个getter/setter,并在测试类中添加注释Spy(使getter返回一个mock)+mock