使用Mock对接口(controller层)进行单元测试

本文总结了在单元测试中如何使用Mock对接口(controller层)进行测试。通过Mockito工具,针对带返回值和不带返回值的service方法进行Mock,避免实际数据库查询,确保测试的独立性和效率。在测试QueryInfoController时,首先Mock QueryService,并设定期望的返回值或行为。
摘要由CSDN通过智能技术生成

在近些天单元测试的过程中,遇到了各种需要使用Mock的情况,现总结记录。

测试背景如下(虚构):

QueryInfoController.java文件提供查询数据的接口;

QueryService.java调用Dao层查询数据;

QueryInfoControllerTest.java对QueryInfoController.java进行单元测试;

现分情况对Mock进行说明:

1、对带返回值的service方法进行Mock

QueryService queryService = PowerMockito.mock(QueryService.class);
ReflectionTestUtils.setFiled(queryInfoController, "queryService ", queryService );
PowerMockito.when(queryService.queryInfo(Mockito.anyMap())).thenReturn(youList);

在测试环境下,我们不一定需要真正去查询数据库或者说也没有必要查询数据库。因为在对controller层进行单元测试之前,对Dao层和Service层的测试应该是通过了的。所以这时可以省略service操作,用Mock代替。在本例中,先对QueryService进行Mock,然后设定其有效区域,即“queryInfoController”。所以在这之前,我们需要

@Autowired
private QueryInfoController queryInfoController;<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值