关于 421-frameworks-quarkus-testing-unit-tests
此技能用于改进 Quarkus 单元测试:除非需要 CDI 集成,否则优先使用 JUnit 5 和 Mockito。内容涵盖模拟、HTTP 资源测试、参数化测试及测试专用配置文件。
主要功能
- 01无需启动 Quarkus,使用 JUnit 5 和 Mockito
- 02用 InjectMock 替换 CDI Bean
- 03用 InjectSpy 创建部分模拟
- 04用 REST Assured 测试 HTTP 资源
- 05通过 CSV 或方法源参数化测试
- 06用 QuarkusTestProfile 配置测试
适用场景
- 01减少快速单元测试对 QuarkusTest 的依赖
- 02用 Mockito 测试服务
- 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 服务编写快速的纯单元测试
工作流
- 阅读参考资料并评估项目上下文
阅读 references/421-frameworks-quarkus-testing-unit-tests.md,并检查当前项目设置,然后再提出更改建议。
- 明确范围并确定目标改进
确定预期结果、约束条件,以及要应用的最小安全更改集。
- 应用符合框架规范的更改
遵循参考资料中的模式和项目约定,实现或重构配置与代码。
- 运行验证并报告结果
执行适当的构建和测试,并总结更改内容、验证结果以及任何后续操作。
参考资料
详细指南、示例和约束请参阅 references/421-frameworks-quarkus-testing-unit-tests.md。
评论
支持 Markdown