用途:该技能在编写或审查 Java 单元测试时启用,提供一套基于 JUnit 5 与 Mockito 的实践规范,用于约束测试结构与 mock 用法。
主要能力:要求每个测试独立、自包含且不依赖执行顺序;测试命名遵循 methodName_scenario_expectedBehavior;每个测试按 Arrange→Act→Assert 组织。Mockito 方面禁用 lenient 模式(不得添加 @MockitoSettings(strictness = Strictness.LENIENT)),避免无必要的桩,只对实际使用的方法 when();只对未被 mock 的交互做 verify;在可控数据时优先使用具体对象桩而非 any() 匹配器;基础返回值直接用 when().thenReturn(),仅在需计算值、条件逻辑或副作用时用 thenAnswer();对被测代码路径中的每个外部调用完整打桩;谨慎使用 verifyNoMoreInteractions,仅纳入应被完全核对的 mock。异常测试需验证类型、消息与 cause,资源需验证已关闭。
使用方式:类级别使用 @UnitTest 与 @ExtendWith(MockitoExtension.class),用 @Mock 声明依赖,@AfterEach 做清理与交互核对。常量放在类级别复用于测试数据;重复代码抽取为私有静态辅助方法。参数化测试单参数使用 Stream<Type>,lambda 类型推断失败时显式声明类型。高级模式(参数化测试、深拷贝打桩、流式 API、精确匹配、显式 lambda 类型)参见 references/patterns.md,完整测试类示例参见 references/examples.md。
适用场景:Java 服务、仓储等组件的单元测试编写与评审。限制:资料仅给出规范与代码模式,未提供具体项目依赖版本、构建命令或运行方式,这些暂未提供。