mcpField
4
421-frameworks-quarkus-testing-unit-tests

421-frameworks-quarkus-testing-unit-tests

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

关于 421-frameworks-quarkus-testing-unit-tests

此技能用于改进 Quarkus 单元测试:除非需要 CDI 集成,否则优先使用 JUnit 5 和 Mockito。内容涵盖模拟、HTTP 资源测试、参数化测试及测试专用配置文件。

主要功能

  1. 01无需启动 Quarkus,使用 JUnit 5 和 Mockito
  2. 02用 InjectMock 替换 CDI Bean
  3. 03用 InjectSpy 创建部分模拟
  4. 04用 REST Assured 测试 HTTP 资源
  5. 05通过 CSV 或方法源参数化测试
  6. 06用 QuarkusTestProfile 配置测试

适用场景

  1. 01减少快速单元测试对 QuarkusTest 的依赖
  2. 02用 Mockito 测试服务
  3. 03添加按配置文件区分的测试配置

安装

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

$npx skills add https://github.com/jabrena/plinth --skill 421-frameworks-quarkus-testing-unit-tests

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

附带文件references/421-frameworks-quarkus-testing-unit-tests.md

详细介绍

Quarkus 单元测试

在 Quarkus 中应用快速测试策略:优先使用 Mockito,仅在涉及 CDI 装配时使用 QuarkusTest。

此技能涵盖哪些内容?

  • 纯 JUnit 5 + Mockito,无需启动容器(@ExtendWith(MockitoExtension.class))
  • 使用 @QuarkusTest 和 @InjectMock 完整替换 CDI Bean
  • 使用 @InjectSpy 进行部分模拟——将真实 Bean 包装为 Spy,并覆盖特定方法
  • 使用 REST Assured 对 @QuarkusTest 资源进行 HTTP 级测试
  • 使用 @ParameterizedTest 搭配 @CsvSource(内联数据)和 @MethodSource(复杂对象)
  • 使用 QuarkusTestProfile 和 @TestProfile 覆盖测试专属配置
  • 命名约定:*Test → Surefire(快速阶段),*IT → Failsafe(verify 阶段)
  • 何时升级为集成测试(@422)

范围: 根据参考规则和优劣代码示例应用建议。

约束

重构测试前先编译;之后验证完整测试套件。

  • 强制要求:应用任何更改前,运行 ./mvnw compile 或 mvn compile
  • 前置条件:应用测试改进前,项目必须能够编译
  • 安全要求:如果编译失败,立即停止
  • 阻断条件:编译错误必须由用户解决后才能继续
  • 验证:应用改进后,运行 ./mvnw clean verify 或 mvn clean verify
  • 应用前:阅读参考资料,了解详细规则和示例

何时使用此技能

  • 在 Quarkus 项目中添加或改进单元测试
  • 优先使用 Mockito 测试,减少对运行缓慢的 @QuarkusTest 的使用
  • 在 Quarkus 测试中添加 @InjectSpy 部分模拟或 QuarkusTestProfile 配置
  • 将重复的测试方法改为使用 @ParameterizedTest 搭配 @CsvSource 或 @MethodSource
  • 为 Quarkus 服务编写快速的纯单元测试

工作流

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

阅读 references/421-frameworks-quarkus-testing-unit-tests.md,并检查当前项目设置,然后再提出更改建议。

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

确定预期结果、约束条件,以及要应用的最小安全更改集。

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

遵循参考资料中的模式和项目约定,实现或重构配置与代码。

  1. 运行验证并报告结果

执行适当的构建和测试,并总结更改内容、验证结果以及任何后续操作。

参考资料

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

评论

支持 Markdown