SuperAPI AI 工具集

421-frameworks-quarkus-testing-unit-tests

测试与质量

查看项目

更新于 10-15 15:05

技能介绍

用途

本技能用于在 Quarkus 项目中编写和维护快速的单元测试,核心策略是“Mockito 优先,仅在 CDI 装配真正重要时使用 @QuarkusTest”。目标是减少缓慢的 @QuarkusTest 使用,提升测试执行速度。

适用时机包括:

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

主要能力

技能覆盖以下测试方式:

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

使用方式

工作流为:

  1. 阅读参考文档并评估项目上下文:阅读 references/421-frameworks-quarkus-testing-unit-tests.md,并在提出改动前检查当前项目设置。
  2. 收集范围并确定目标改进:识别期望结果、约束条件以及最小安全改动集合。
  3. 应用与框架一致的改动:按照参考模式与项目约定实现或重构配置/代码。
  4. 运行验证并报告结果:执行相应的构建/测试,并总结改动了什么、验证了什么以及后续操作。

约束与前置条件:

  • 在重构测试前先编译;应用后验证完整测试套件。
  • 强制要求:应用任何改动前运行 ./mvnw compile 或 mvn compile
  • 前置条件:项目必须在应用测试改进前可以编译
  • 安全要求:如果编译失败,立即停止
  • 阻塞条件:编译错误必须由用户解决后才能继续
  • 验证:应用改进后运行 ./mvnw clean verify 或 mvn clean verify
  • 应用前:阅读参考文档以了解详细规则和示例

适用场景

适合需要为 Quarkus 应用编写快速单元测试、减少容器启动开销、使用 Mockito 模拟与部分模拟、进行参数化测试以及按测试阶段区分命名(*Test 与 *IT)的开发场景。

限制

本技能明确要求项目在改动前必须可编译,编译失败时立即停止,编译错误需由用户解决。其余如具体支持版本、依赖坐标、价格与平台信息,资料中暂未提供。