SuperAPI AI 工具集

testing-patterns

测试与质量

查看项目

更新于 10-17 13:43

技能介绍

技能介绍

testing-patterns 汇总 Spring Boot 应用的测试策略,用于编写测试、补覆盖率、排查测试失败,以及选择单元、切片或集成测试。原文要求同时编写正常与异常用例。

测试层次

  • 单元测试:使用 JUnit 5、Mockito、@ExtendWith(MockitoExtension.class)、@Mock 和 @InjectMocks,隔离服务类的依赖,核对返回值和方法调用。
  • 控制器切片:使用 @WebMvcTest 与 MockMvc,检查请求序列化、创建成功的 201、输入校验失败的 400 和资源缺失的 404;失败场景还应核对服务没有被错误调用。
  • 仓库切片:使用 @DataJpaTest、TestEntityManager 和 PostgreSQL Testcontainers,验证真实数据库查询、大小写处理及无匹配时的空结果。
  • 集成测试:使用随机端口的 @SpringBootTest、测试配置及容器数据库,验证创建、读取、删除与删除后再次读取的完整流程。原文示例使用 RestTestClient。

用例与配置

示例包括正常下单、商品不存在、空订单、非法用户名和不同角色权限。异常断言使用 assertThatThrownBy();verify(mock, never()) 用于确认不应发生的调用没有执行。参数化测试使用 @ParameterizedTest、@ValueSource 和 @CsvSource,以多组输入复用相同断言。

原文还提供 @TestConfiguration 与 @Import 复用容器配置的写法,并注明 @ServiceConnection 用于 Spring Boot 3.1 及以上版本的容器连接自动配置。测试命名采用 methodUnderTest_condition_expectedResult。

以上为公开原文的内容整理,原始代码与标识保留在来源资料中。本页未运行 Java 示例、启动数据库容器或验证特定 Spring Boot 版本的兼容性。