0


Mockito Mybatis-plus 单元测试

1. mock Mybatis-plus 自带 ServiceImpl方法问题

  • 分析 mybatis-plus 自带的ServiceImpl,其实其最后执行使用的是我们所创建的Mapper,他最终会注入到 ServiceImpl的baseMapper中**- 示例**1. 业务代码// 实体publicclassUtilSaleData{}// mapperpublicinterfaceUtilSaleDataMapperextendsBaseMapper<UtilSaleData>{}// servicepublicclassUtilSaleDataServiceImplextendsServiceImpl<UtilSaleDataMapper,UtilSaleData>implementsUtilSaleDataService{@OverridepublicList<UtilSaleData>selectSaleDataList(String id){LambdaQueryWrapper queryWrapper =newLambdaQueryWrapper<UtilSaleData>().eq(StringUtils.isNotBlank(id),UtilSaleData::getId, id);returnlist(queryWrapper);}2. 测试代码@RunWith(MockitoJUnitRunner.class)// 使用Mockito运行器publicclassMockTest{@InjectMocks// 被测对象privateUtilSaleDataServiceImpl productService;@Mock// mock模拟对象依赖注入privateUtilSaleDataMapper mapper;@TestpublicvoidfindProductByIdTest2(){List<UtilSaleData> list =newArrayList<>();UtilSaleData utilSaleData =newUtilSaleData(); utilSaleData.setId("22222"); list.add(utilSaleData);// 模拟结果 selectList 结果Mockito.when(mapper.selectList(any())).thenReturn(list);List<UtilSaleData> list1 = productService.selectSaleDataList("1");System.out.println(list1);}} ``````3. 依赖<dependency><groupId>org.mockito</groupId><artifactId>mockito-core</artifactId><version>3.7.7</version><scope>test</scope></dependency>```
  • 解释****我想要mock的方法是selectSaleDataList方法里面的 list(queryWrapper)方法结果,使其不调用数据库,但是list实际调用的是mapper的selectList方式,所以上面mock时用的是Mockito.when(mapper.selectList(any())).thenReturn(list)
标签: mybatis 单元测试

本文转载自: https://blog.csdn.net/lzy66666/article/details/138256362
版权归原作者 lzy66666 所有, 如有侵权,请联系我们删除。

“Mockito Mybatis-plus 单元测试”的评论:

还没有评论