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

roc*_*cky 10 java junit4 mockito

我有一个场景,一个类中有两个属性,一个属性是真实的,另一个是模拟的,如何将这两个属性注入到对象中。

例如。

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

        @InjectMocks
        private SampleTest sampleTest ;

        private SampleProperties properties;
        @Mock
        private SampleProvider provider;
}
Run Code Online (Sandbox Code Playgroud)

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

use*_*900 8

添加@Spy以注入真实对象

 @Spy
 private SampleProperties properties;
Run Code Online (Sandbox Code Playgroud)

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

如果使用 Spring 上下文,还要添加@Autowired注释