关于 131-java-testing-unit-testing
面向 Java 项目的单元测试技能,帮助审查和改进测试,涵盖 JUnit 5、AssertJ 与 Mockito。它结合测试质量原则和正反示例,并要求先编译、再完整验证。
主要功能
- 01JUnit 5 测试结构与参数化
- 02AssertJ 流式断言
- 03Mockito 依赖模拟
- 04覆盖率与边界条件指导
- 05编译后修改并完整验证
适用场景
- 01审查和现代化 Java 单元测试
- 02编写快速的 JUnit 单元测试
- 03隔离协作者并改进 Mockito 测试
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jabrena/ plinth --skill 131-java-testing-unit-testing安装后在 Claude Code 中输入/131-java-testing-unit-testing确认已加载。
附带文件references/131-java-testing-unit-testing.md
详细介绍
Java 单元测试指南
使用现代 JUnit 5、AssertJ 和 Mockito 最佳实践审查并改进 Java 单元测试。
此技能涵盖哪些内容?
- JUnit 5 注解:
@Test、@BeforeEach、@AfterEach、@DisplayName、@Nested、@ParameterizedTest - AssertJ 流式断言:
assertThat、assertThatThrownBy - Given-When-Then 测试结构、描述性测试命名、单一职责测试
- 测试独立性与隔离状态
- 参数化测试:
@ValueSource/@CsvSource/@MethodSource - Mockito 依赖模拟:
@Mock、@InjectMocks、MockitoExtension - 代码覆盖率指南(JaCoCo)、包级私有测试可见性
- 测试反模式:反射、共享状态、硬编码值、测试实现细节
- 错误处理:
assertThatThrownBy、异常消息 - JSpecify 空值安全:
@NullMarked、@Nullable - RIGHT-BICEP 覆盖原则、A-TRIP 测试质量、CORRECT 边界条件验证
范围: 参考文档按示例组织,针对每个核心领域展示良好和不良代码模式。请根据适用示例应用建议。
约束
应用任何单元测试更改前,请确保项目能够编译。如果编译失败,请立即停止,解决问题后再继续。完成改进后,运行完整验证。
- 必须: 应用任何更改前,运行
./mvnw compile或mvn compile - 安全要求: 如果编译失败,请立即停止,不要继续;编译失败属于阻断条件
- 验证: 应用改进后,运行
./mvnw clean verify或mvn clean verify - 应用前: 阅读参考文档,了解详细示例、良好与不良模式以及约束
何时使用此技能
- 审查 Java 单元测试代码
- 在 Java 代码中应用单元测试最佳实践
- 为 Java 代码编写快速的 JUnit 单元测试
- 改进基于 Mockito 的 Java 单元测试
- 重构 Java 测试以隔离协作者
工作流
- 在更改单元测试前编译项目
运行 ./mvnw compile 或 mvn compile,如果编译失败,请立即停止。
- 阅读单元测试参考文档并评估覆盖情况
阅读 references/131-java-testing-unit-testing.md,找出当前测试在现代化和质量方面的不足。
- 应用单元测试最佳实践
使用 JUnit 5、AssertJ、Mockito、参数化测试和更严格的边界检查来实现或重构测试。
- 通过完整构建进行验证
应用改进后,运行 ./mvnw clean verify 或 mvn clean verify。
参考资料
详细指南、示例和约束请参见 references/131-java-testing-unit-testing.md。
评论
支持 Markdown