https://blog.csdn.net/u011236357/article/details/51197965
在项目中需要对Service做UT,但是该Service在UT中不好实例化,直接用@Mock的话,里面的@Autowired的bean就Mock不出来,为null了。
所以考虑使用@InjectMock。
@InjectMock和@Mock的区别:
@Mock只是创建一个Mock
@InjectMock创建了一个实例,其他的用@Mock注解创建的Mock会被注入到该实例中。
所以使用方法:
1、用@InjectMock创建需要实例化的类。
2、该实例中其他Bean用@Mock来创建Mock
3、在@Before中使用MockitoAnnotations.initMocks(this);来进行Mock的初始化和注入