用途
该技能面向 Micronaut 应用的单元测试编写与改进,核心目标是采用快速测试策略:以 Mockito 优先,仅在需要 HTTP 交互或依赖注入替换时才使用范围更窄的 @MicronautTest。适用于在 Micronaut 项目中新增或改进单元测试、减少不必要的 @MicronautTest 使用、为 Micronaut 服务编写 Mockito 优先的单元测试、在单元测试中模拟 Micronaut bean 协作者,以及审查不启动应用上下文的快速 Micronaut 测试。
主要能力
技能覆盖以下测试内容:
- 纯 JUnit 5 + Mockito,不启动容器
- @MicronautTest 配合 @MockBean 工厂方法模拟协作者
- 针对嵌入式服务器的 HttpClient 阻塞式交换
- 使用 @Property 在测试中提供确定性配置
- 使用 @ParameterizedTest 配合 @CsvSource / @MethodSource 进行参数化测试
- 命名约定:*Test 对应 Surefire;配置后 *IT 对应 Failsafe
技能范围是依据参考规则与正反代码示例给出建议。
使用方式
工作流分为四步:
- 阅读参考并评估项目上下文:阅读 references/521-frameworks-micronaut-testing-unit-tests.md,并在提出变更前检查当前项目设置。
- 收集范围并确定目标改进:识别请求的结果、约束以及最小安全变更集。
- 应用与框架一致的变更:按照参考模式与项目约定实现或重构配置/代码。
- 运行验证并报告结果:执行相应的构建/测试,并总结变更内容、验证结果及后续操作。
约束条件:
- 在测试重构前先编译;应用后验证完整测试套件。
- 强制要求:在应用任何变更前运行 ./mvnw compile 或 mvn compile。
- 安全要求:如果编译失败,立即停止。
- 验证要求:在应用改进后运行 ./mvnw clean verify 或 mvn clean verify。
- 应用前:阅读参考以了解详细规则与示例。
- 边界情况:如果请求范围不明确,停止并在应用变更前提出澄清问题。
- 边界情况:如果缺少必需输入、文件或工具,报告缺失内容并询问是否继续提供设置指导。
适用场景
- 在 Micronaut 项目中添加或改进单元测试
- 通过 Mockito 优先的测试减少不必要的 @MicronautTest 使用
- 为 Micronaut 服务编写 Mockito 优先的单元测试
- 在单元测试中模拟 Micronaut bean 协作者
- 审查不启动应用上下文的快速 Micronaut 测试
限制
技能未提供具体的收费、价格、平台或效果信息。执行时需遵循编译与验证约束;若编译失败必须立即停止。当请求范围不明确或缺少必需输入、文件、工具时,需停止并询问,不得擅自继续。