mcpField
3
321-frameworks-spring-boot-testing-unit-tests

321-frameworks-spring-boot-testing-unit-tests

github.com/jabrena测试与质量456391 次安装1 天前更新
代码仓库

关于 321-frameworks-spring-boot-testing-unit-tests

用于在 Spring Boot 项目中采用 Mockito 单元测试实践的技能,强调适用时不加载 Spring 上下文,并涵盖控制器与 JSON 切片测试、参数化测试及确定性测试配置。

主要功能

  1. 01基于 Mockito 的服务单元测试
  2. 02使用 @WebMvcTest 测试控制器
  3. 03使用 @JsonTest 断言 JSON
  4. 04参数化测试模式
  5. 05确定性时钟配置
  6. 06当前版本的 Mockito Bean 注解

适用场景

  1. 01不加载上下文测试 Spring 服务
  2. 02测试控制器请求与响应行为
  3. 03验证 JSON 序列化结果
  4. 04用参数化测试替代重复用例

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jabrena/plinth --skill 321-frameworks-spring-boot-testing-unit-tests

安装后在 Claude Code 中输入/321-frameworks-spring-boot-testing-unit-tests确认已加载。

附带文件references/321-frameworks-spring-boot-testing-unit-tests.md

详细介绍

使用 Mockito 进行 Spring Boot 单元测试

使用 Mockito 应用 Spring Boot 单元测试指南。

此技能涵盖哪些内容?

  • 纯单元测试:使用 @ExtendWith(MockitoExtension.class)、@Mock、@InjectMocks 测试 @Service/@Component(不加载 Spring 上下文)
  • 切片测试:使用 @WebMvcTest、@MockitoBean 测试控制器(Spring Boot 4.0.x 中已移除 @MockBean)
  • 使用 @JsonTest 测试 JSON 序列化,并正确断言 JSON 值(extractingJsonPathStringValue 等)
  • 参数化测试:使用 @ParameterizedTest 搭配 @CsvSource 或 @MethodSource,替代复制粘贴的方法
  • 在测试中使用 Java record 作为领域对象
  • 使用 @TestConfiguration、@ActiveProfiles、@Primary 固定时钟 Bean,确保测试设置具有确定性
  • 现代化的模拟 API:@MockitoBean / @MockitoSpyBean;@MockBean/@SpyBean 在 Boot 4.0.x 中已弃用/移除

范围: 根据参考规则和优劣代码示例应用建议。对于集成测试,请使用 @322-frameworks-spring-boot-testing-integration-tests。

约束

应用任何测试变更之前,确保项目能够编译。如果编译失败,请立即停止。改进完成后,运行完整验证。

  • 强制要求:应用任何变更之前,运行 ./mvnw compile 或 mvn compile
  • 安全要求:如果编译失败,请立即停止
  • 验证要求:应用改进后,运行 ./mvnw clean verify 或 mvn clean verify
  • 应用变更前:阅读参考资料,了解详细规则和优劣模式
  • 特殊情况:如果请求范围不明确,请停止并先询问澄清问题,再应用变更
  • 特殊情况:如果缺少必需的输入、文件或工具,请说明缺少的内容,并询问是否继续提供设置指导

何时使用此技能

  • 审查 Spring Boot 单元测试的 Java 代码
  • 在 Java 代码中应用 Spring Boot 单元测试最佳实践
  • 为 Spring Boot 服务编写 Mockito 优先的单元测试
  • 避免在 Spring 单元测试中不必要地使用 @SpringBootTest
  • 审查不使用 Spring 切片的 Spring Boot 单元测试设计

工作流

  1. 阅读参考资料并评估项目上下文

阅读 references/321-frameworks-spring-boot-testing-unit-tests.md,并检查当前项目设置,再提出变更建议。

  1. 明确范围并确定目标改进

识别所需结果、约束,以及需要应用的最小安全变更集。

  1. 应用符合框架规范的变更

按照参考模式和项目惯例实施或重构配置/代码。

  1. 运行验证并报告结果

执行适当的构建/测试,并总结变更内容、验证结果及后续操作。

参考资料

详细指南、示例和约束请参阅 references/321-frameworks-spring-boot-testing-unit-tests.md。

评论

支持 Markdown