繁体   English   中英

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

[英]How to inject mock into @Autowired field in an abstract parent class with Mockito

我正在为具有抽象超类的 class 编写单元测试,并且 ChildClass 中的一个函数正在从 BaseClass 调用 object 上的方法。

ChildClass看起来像这样。

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

父 class

public abstract class ParentClass {
    @Autowired
    protected typeFromParentClass objectFromParentClass;

    public void someFunction() {}
}

由于父 class 是抽象的@InjectMocks并且ReflectionTestUtils()不起作用。 有没有办法用 Mockito 将模拟的objectFromParentClass注入ParentClass

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

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

https://github.com/exabrial/mockito-object-injection

这是我们为解决这个确切问题而编写的一个 Junit5 扩展。 本质上,它需要对象的 map 并将它们注入到被测 class 的字段中。 非常适合 InjectMocks 不足的地方!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM