SpringBoot 单模块下的单元测试

2023-11-13 21:45:24 浏览数 (1)

1、什么是单元测试?

单元测试(Unit Testing)是一种软件测试方法,用于验证和确认代码中的各个单元(通常是函数、方法或类)是否按照预期工作。单元测试旨在检测代码中的小部分,以确保其功能的正确性。

2、单元测试有哪些好处?

  1. 在单元测试中使用模拟对象来替代实际的数据库访问操作,不会实际修改数据库中的数据。
  2. 单元测试可以验证代码中的每个单元(通常是函数、方法或类)是否按照预期工作,有助于快速定位和修复问题。
  3. 单元测试是持续集成的关键组成部分,可以在每次代码提交或构建时自动运行,以确保新代码未引入问题。

注意

在构建项目时,会自动运行所有的单元测试,如果测试失败,构建过程将停止,以确保不发布有问题的代码。

3、单元测试的实现步骤

3.1 引入依赖

创建Spring Boot 项目时会默认单元测试框架 spring-boot-starter-test,这个单元测试框架基于测试框架 JUnit 实现。

代码语言:javascript复制
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-test</artifactId>
  <scope>test</scope>
</dependency>

3.2 生成单元测试类

在需要进行单元测试的类里面右键:Generate

注意:

生成的单元测试文件在test目录下。

3.3 添加元测试代码

3.3.1 添加 Spring Boot 框架测试注解:@SpringBootTest
代码语言:javascript复制
@SpringBootTest		// @SpringBootTest 表明当前单元测试是运行在Spring Boot环境中的
class SysUserMapperTest {

    @Test
    void selectUserList() {
    }
}
3.3.2 添加单元测试业务逻辑

添加需要测试的业务逻辑;

这里根据自己的项目需求进行某个模块下的单元测试,故截图省略;

3.3.2 测试业务

然后,鼠标右键运行该测试。

注意

进行单元测试后, 再去运行项目,需要切换过来。

3.4 常见报错

代码语言:javascript复制
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test

报错原因

测试类和Spring Boot启动类不在一个目录下。

报错原因

方法一:将启动类和测试类放在同一个包下即可。

方法二:给测试类的注解加上@SpringBootTest(classes = {启动类类名.class})

3.5 多模块下的单元测试

在springboot单模块项目很好实现单元测试,只要生成测试类即可进行测试。但在多模块项目中进行单元测试稍微复杂。比如多模块项目中有些模块没有启动类,如果对该模块进行测试,则需要创建启动类,并进行相关配置。

在多模块下如何进行单元测试,将在下篇文章中呈现。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞