通俗学习Mockito结合Spring跨多层接口mock测试方法
1、场景:A调B,B调C,测试A,mock掉C
想要测试ServiceA服务的getUserVo()方法,而getUserVo()方法调用了ServiceB服务,ServiceB又调用了ServiceC服务的getUser()方法,需要mock掉ServiceC的getUser()方法。
2、操作方法: 详细如代码,参照代码注释
- 把需要mock注入的服务ServiceA,ServiceB加上
@InjectMocks
- 把需要mock的服务ServiceC加上
@Mock
或@Spy
- 执行测试方法前
@Before
初始化Mock注入,加上MockitoAnnotations.initMocks(this);
- 调用测试接口前执行需要mock的方法,指定mock的返回值
when(serviceC.getUser(anyInt())).thenReturn(user);
//手动导入static的Mockito包
import static org.mockito.Mockito.*;
@Slf4j
@RunWith(SpringJUnit4ClassRunner.cl