设置 JUnit 与 Spring Boot 测试

无论您是构建 REST API、服务层逻辑还是数据访问层,Spring Boot 都为 JUnit 提供一流的支持,并提供方便的注解和实用程序来编写干净、可维护的测试。

JUnit6 Logo

无论您是构建 REST API、服务层逻辑还是数据访问层,Spring Boot 都为 JUnit 提供一流的支持,并提供方便的注解和实用程序来编写干净、可维护的测试。

1. 必需的依赖

Spring Boot 默认使用 JUnit Jupiter (JUnit 5/6 平台)

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

此单个依赖项包括

  • JUnit Jupiter
  • Spring Test
  • Spring Boot Test
  • Mockito
  • AssertJ
  • JSONAssert
  • Hamcrest

2. 重写 JUnit 版本

Spring Boot 提供自动支持来管理项目中使用的 JUnit 版本。 如果您的构建依赖于 Spring Boot 的依赖项管理支持,则不应将 JUnit 的 物料清单 (BOM) 导入到您的构建脚本中,因为这会导致 JUnit 依赖项重复(并且可能存在冲突)。

如果您需要重写 Spring Boot 应用程序中使用的依赖项的版本,则必须重写 Spring Boot 插件使用的 BOM 中定义的精确的 版本 属性。

<properties>
    <junit-jupiter.version>6.0.0</junit-jupiter.version>
</properties>
ext['junit-jupiter.version'] = '6.0.0'

3. 标准 Spring Boot 测试文件夹结构

Spring Boot 自动遵循以下文件夹结构,因为

  • Maven/Gradle 约定将测试类放在 src/test/java
  • JUnit 在测试阶段扫描此文件夹
  • Spring Boot 在 src/test/resources 下查找 application-test.properties
project-root/
 ├── src/
 │    ├── main/
 │    │    ├── java/
 │    │    │    └── com/example/demo/...
 │    │    └── resources/
 │    │         └── application.properties
 │    └── test/
 │         ├── java/
 │         │    └── com/example/demo/...
 │         └── resources/
 │              └── application-test.properties
 ├── pom.xml or build.gradle

4. 结论

JUnit 和 Spring Boot Test 提供了一个健壮且可扩展的测试生态系统。 几乎无需设置,您就可以获得

  • 完整的应用程序上下文支持
  • 快速、隔离的切片 (Web、JPA、MVC)
  • 开箱即用的模拟
  • 简洁、表达力强的测试风格

无论您是测试单个服务、复杂的 REST API 还是 JPA 仓库,Spring Boot 与 JUnit 的集成都能确保您的测试保持简单、可预测且可维护。

祝您学习愉快!

评论

订阅
通知
0 条评论
最多投票
最新 最旧
内联反馈
查看所有评论

关于我们

HowToDoInJava 提供 Java 和相关技术的教程和操作指南。

它还分享最佳实践、算法和解决方案以及经常被问到的面试题。

我们的博客

REST API 教程

关注我们