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

springboot中的怎么用JUnit进行测试的?

在 Spring Boot 中使用 JUnit 进行单元测试非常简单,官方已帮你集成好 JUnit5(Spring Boot 2.x 默认),只需 3 步即可跑起来。下面给出一份「最小可运行」示例,并补充常见场景(Mock、Web、事务)的写法,复制即可用。

1.引入依赖(已自带,确认即可)

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>
</dependency>

该包已包含 JUnit5、Mockito、AssertJ、Hamcrest 等,无需额外导包

2.最简单的 service 层单元测试

@SpringBootTest                      // 1. 拉起整个 Spring 容器
class UserServiceTest {@Autowiredprivate UserService userService;   // 2. 直接注入真实 Bean@Test                              // 3. JUnit5 注解void getUserById() {User u = userService.getById(1L);assertThat(u.getName()).isEqualTo("Jack");   // AssertJ 流式断言}
}

运行:IDEA 在方法左侧点击 ▶ 即可,首次会自动编译并启动容器,完成后看到绿色条即通过

3.常见场景快速模板

场景关键注解/工具
① 不启动服务器,只测 web 切片@WebMvcTest(YourController.class) + MockMvc
② 快速 Mock 依赖@MockBean
③ 测试持久层@DataJpaTest + @AutoConfigureTestDatabase(replace=ANY)
④ 事务回滚@Transactional(默认回滚)
⑤ 随机端口 HTTP 测试@SpringBootTest(webEnvironment = RANDOM_PORT) + TestRestTemplate

4.JUnit4 → JUnit5 对照(老项目迁移)

| JUnit4 | JUnit5 |

|---|---|

| @RunWith(SpringRunner.class) | 不需要,或改为 @ExtendWith(SpringExtension.class) |

| @Test(org.junit.Test) | @Test(org.junit.jupiter.api.Test) |

| Assert.assertEquals | Assertions.assertEqualsassertThat(...).isEqualTo(...) |

5.一键生成测试类小技巧
在 IDEA 里把光标停在要测试的类名上 → Ctrl+Shift+T → Create New Test → 选择 JUnit5,IDE 会自动在 src/test/java 对应包下生成模板,再补 @SpringBootTest 即可

6.运行与查看报告

  • 命令行:mvn test

  • 报告:target/surefire-reports/index.html(Maven)

  • 覆盖率:加 jacoco-maven-plugin 后执行 mvn test jacoco:report,打开 target/site/jacoco/index.html 即可看到行/分支覆盖率

照着以上模板,10 分钟即可把 Spring Boot 项目的单元测试跑起来;后续再按需拆分层级测试(@WebMvcTest、@DataJpaTest 等)即可。祝编码愉快!

http://www.dtcms.com/a/523983.html

相关文章:

  • LeetCode:695. 岛屿的最大面积
  • 传奇手游可以使用云手机挂机搬砖吗
  • 2025 OSCAR丨与创新者同频!Apache RocketMQ 邀您共赴开源之约
  • Dify配置本地部署的音频识别模型
  • C# .NET Core中Chart图表绘制与PDF导出
  • 相机拍照的图片怎么做网站呀国内互联网公司排名
  • 微信怎么建设自己网站在单机安装wordpress
  • 实验-Vlan基础
  • Windows CMD 常用命令:7 大核心模块速查指南(附实战场景)
  • OCR国内外证件识别接口调用指南-身份证文字识别
  • 使用acme.sh创建自己的第一个https证书
  • Galera Cluster部署
  • 【Flink实战】升级HDFS,对Flink SQL(On Yarn模式)的功能兼容性验证
  • LangChain 表达式语言:SQL 数据库查询链
  • 通辽网站网站建设网站卖东西怎么做
  • 免费个人网站建设大全有什么建设网站的书籍
  • 电脑控制DFPlayer Mini MP3播放音乐
  • Day10:Python实现Excel自动汇总
  • 网站建设 美食站点网站设计确认函
  • 新买的笔记本电脑为什么风扇声音一直很大?怎样解决?
  • 鸿蒙 HarmonyOS 6|ArkUI(03):状态管理
  • DeepSeek 最新开源OCR模型,实测,不如百度Paddle
  • 做视频网站多大空间够网络推广是指什么
  • 网站运营维护中需要用到什么服务器网站设计哪家最好
  • 多类别分类中,标签的 “独热编码” 形式与输出层神经元的位置处理过程
  • 搞懂 Kotlin 的 List、Set、Map、HashMap、LinkedHashMap,以及 asSequence() 的底层原理与实战场景。
  • RK3568项目(十八)--debian文件系统的编译
  • 【Elasticsearch 全解析】分布式搜索引擎的原理、实践与优化
  • 亚马逊“Amelia”智能眼镜登场,三星/微美全息加速AI+AR技术融合引领穿戴赛道!
  • 成都有几个区高级seo培训