用途:指导为源码创建单元测试,保证一致性与正确性。
主要能力与流程:
- 分析与规划:检查源码,识别核心功能的正常路径,以及可能的错误与边界情况;除非被要求,不讨论实现细节,聚焦行为。
- 建立测试文件:命名为 [OriginalClassName]Test.kt,位置为 [module]/src/test/java/[package/path]/;测试 Android 组件时必须使用 Robolectric;优先创建 Fake,仅在 Fake 过于复杂时使用 Mock。
- 实现测试:编写清晰、描述性的测试方法,遵循 Arrange-Act-Assert 模式;字符串、主题等资源需通过 Robolectric 正确提供或模拟。
- 运行测试:命令为 ./gradlew :[module]:testDebugUnitTest,例如 ./gradlew :database:testDebugUnitTest;提交前可运行 ./gradlew testDebugUnitTest 确认全部通过。
- 处理失败:失败时查看完整错误报告,路径为 [module]/build/test-results/testDebugUnitTest/TEST-[package.name.TestClassName].xml,例如 app/build/test-results/testDebugUnitTest/TEST-com.anysoftkeyboard.janus.app.MainActivityTest.xml。
规范与限制:测试应放在 test 源集而非 androidTest,除非专门编写插桩测试(本技能中较少见);避免不稳定测试,确保行为确定性。资料未提供收费、平台支持范围等更多信息。