如何通过InjectMocks批注注入真实对象

时间:2018-12-16 12:19:04

标签: java mockito junit4

在一个类中有两个属性,其中一个属性为实属性,另一个属性为模拟属性,如何将这两个属性都注入到对象中。

例如。

    @RunWith(MockitoJUnitRunner.class)
    public class SampleTest extends ExchangeTestSupport {

        @InjectMocks
        private SampleTest sampleTest ;

        private SampleProperties properties;
        @Mock
        private SampleProvider provider;
}

在上面的代码中,属性是真实的,提供程序是模拟的,需要将两者都注入sampleTest对象。

1 个答案:

答案 0 :(得分:1)

添加@Spy以注入真实对象

 @Spy
 private SampleProperties properties;
  

可以在声明点显式初始化带有@Spy注释的字段。另外,如果您不提供实例,Mockito将尝试查找零参数构造函数(甚至是私有的)并为您创建一个实例。

如果您使用的是Spring上下文,还请添加@Autowired批注