当前位置: 首页 > news >正文

mybatis-plus从入门到入土(二):单元测试

朋友们,大家好,我是爱记录所见所闻的新world。今天我们更新MyBatis-Plus从入门到入土的第二篇,说实话自从上次更新了一个快速开始之后,我一直在想这一篇应该讲什么,本来应该正式开始讲MyBatis-Plus的各种用法了,但是我看到了这个。
在这里插入图片描述

​ 其实单元测试往往是大家最容易忽略的东西,但是它的作用很大。无论是平时项目开发编写单元测试,还是阅读源代码时通过单元测试明白功能框架和Debug调用链路,单元测试都扮演着很重要的角色,基于此,这篇我们讲一下单元测试

依赖

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter-test</artifactId><version>3.5.12</version>
</dependency>

编写测试用例

测试用例,我们还是用上一篇中编写的用例,只不过把注解从@SpringBootTest换成@MybatisPlusTest

@MybatisPlusTest
class MybatisPlusLearningApplicationTests {@Autowiredprivate UserMapper userMapper;@Testpublic void testSelect() {System.out.println(("----- selectAll method test ------"));List<User> userList = userMapper.selectList(null);Assert.isTrue(5 == userList.size(), "");userList.forEach(System.out::println);}}

运行单元测试

在这里插入图片描述

嗯嗯,和上一篇的运行结果一致,我们就实现了用MyBatis-Plus提供的注解编写单元测试用例,但是有的朋友会问了,这和上一篇的单元测试用例有什么区别呢?你不就是换了个注解吗?

SpringBoot的单元测试

​ 一直以来,大多数朋友可能对单元测试不是很了解(我就不是很了解,哈哈!),大家都习惯于直接使用@SpringBootTest注解来实现单元测试,其实SpringBoot可不止提供了这一个注解奥,大家看下。
在这里插入图片描述

​ 哇,好多注解啊,仿佛开启了新的世界,其实我也是一次偶然的机会才知道,之前不是很了解。为什么会有这么多注解呢?大家有没有发现使用@SpringBootTest的测试类,每次运行测试用例都好慢啊,怎么感觉和启动项目差不多呢?没错,就是因为他加载了SpringBoot的整个上下文,而当我们只想测试Controller,或者只想测试Jdbc的时候,我们完全可以使用@WebMvcTest@JdbcTest等这些只加载部分上下文的注解。

@MybatisPlusTest注解

​ 好了,如果讲到这里就结束了,这篇文章就太水了,堪比上篇的快速开始。我们简单分析下@SpringBootTest@MybatisPlusTest的区别。
在这里插入图片描述

通过上图,大家可以看到,两个注解主要的区别就是框起来的这些元注解。下面我们分析下这几个元注解。

@OverrideAutoConfiguration注解

在这里插入图片描述

如上所示,该注解的注释已经解释得很清楚了,**可用于覆盖 @EnableAutoConfiguration 的注解。通常与 @ImportAutoConfiguration 结合使用,以限制加载的自动配置类。**而我们刚刚再比较@SpringBootTest@MybatisPlusTest的区别时正好还看到了一个@ImportAutoConfiguration注解,那么这两个注解结合使用,就是为了限制自动加载的配置类,这样就不会像@SpringBootTest那样加载全部的自动配置了。

@TypeExcludeFilters注解

关于@TypeExcludeFilters注解主要用于组件扫描时的排除,而注解中指定的MybatisPlusTypeExcludeFilter这个类。则是为了处理需要过滤掉某些组件的情况下。其实这个注解和@MybatisPlusTest注解是配对出现的,主要是为了做测试用例细粒度的排除操作。当在@MybatisPlusTest中指定了includeFiltersexcludeFilters时,就会应用到MybatisPlusTypeExcludeFilter

其他的Auto注解

至于其他的几个Auto注解则是为了完成MybatisPlus测试而需要用到的自动配置。这里就不过多赘述了。

好了,第二篇就讲到这里,朋友们如果有什么问题欢迎评论区留言,大家一起探讨。

http://www.lryc.cn/news/581855.html

相关文章:

  • 深度学习图像分类数据集—蘑菇识别分类
  • 利用近距离全景图像进行树状结构骨架化
  • 每天一个前端小知识 Day 23 - PWA 渐进式 Web 应用开发
  • Linux国产与国外进度对垒
  • 如何使用xmind编写测试用例
  • 408第三季part2 - 计算机网络 - 应用层
  • 大数据Hadoop之——Flink1.17.0安装与使用(非常详细)
  • 分布式会话的演进和最佳实践,含springBoot 实现(Java版本)
  • 深度学习图像分类数据集—濒危动物识别分类
  • 李宏毅genai笔记:推理
  • Web攻防-XMLXXE上传解析文件预览接口服务白盒审计应用功能SRC报告
  • 网安系列【8】之暴力破解入门
  • Java设计模式之行为型模式(策略模式)介绍与说明
  • 125.【C语言】数据结构之归并排序递归解法
  • docker-compse安装nginx
  • Win11 安装 Visual Studio(保姆教程 - 更新至2025.07)
  • Altium Designer使用入门(非精通)教程 第三章(PCB绘制)
  • Application的onLowMemory从Android API 34开始系统不再触发,从API 35开始废弃
  • 【机器学习笔记Ⅰ】12 逻辑回归
  • get: ()=>state 和get: ()=>{state}
  • std::vector<bool>有什么特殊的吗
  • Podman与Docker详细比较:从原理到使用
  • 单片机总复习
  • 开关电源抄板学习
  • Spring Cloud Alibaba/Spring Boot整合华为云存储实例(REST API方式)
  • 反向遍历--当你修改一个元素的outerHTML时,该元素会被从 DOM 中移除
  • Python设计小游戏方法简介
  • 【C++】string类(二)相关接口介绍及其使用
  • 2025年03月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • LeetCode 每日一题 2025/6/30-2025/7/6