前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot 单模块下的单元测试

SpringBoot 单模块下的单元测试

原创
作者头像
刺槐儿
发布2023-11-13 21:45:24
7430
发布2023-11-13 21:45:24
举报
文章被收录于专栏:技术路线技术路线

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腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、什么是单元测试?
  • 2、单元测试有哪些好处?
  • 3、单元测试的实现步骤
    • 3.1 引入依赖
      • 3.2 生成单元测试类
        • 3.3 添加元测试代码
          • 3.3.1 添加 Spring Boot 框架测试注解:@SpringBootTest
          • 3.3.2 添加单元测试业务逻辑
          • 3.3.2 测试业务
        • 3.4 常见报错
          • 3.5 多模块下的单元测试
          相关产品与服务
          持续集成
          CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档