SuperAPI AI 工具集

android-testing-unit

测试与质量

查看项目

更新于 10-15 15:36

技能介绍

用途

Android Testing Unit 用于在 Android 项目中编写快速、聚焦的单元测试,主要覆盖 reducer、use case、repository 以及生命周期安全的状态持有者。当请求涉及 Android 单元测试策略、ViewModel reducer 测试、repository 单元测试时,适合使用该技能。

主要能力

  • 为 reducer 与格式化逻辑编写聚焦的本地单元测试。
  • 为 use case、repository 编写单元测试。
  • 覆盖生命周期安全的状态持有者。
  • 在不使用 instrumentation 的情况下,模拟同步失败与权限拒绝分支。
  • 将单元测试请求与 UI 测试或一般架构清理区分开。

使用方式

技能给出的工作流包括:界定风险面(正确性、安全性、性能、测试深度或发布自动化);选择仍能捕获可能回归的最窄验证策略;对工作流进行插桩,使失败可操作而非仅显示红色;在示例应用与打包输出上运行相关检查;用明确的后续工作与负责技能记录残余风险。

示例命令:

  • 正常路径:cd examples/orbittasks-compose && ./gradlew :app:testDebugUnitTest && cd ../orbittasks-xml && ./gradlew :app:testDebugUnitTest
  • 边界情况:cd examples/orbittasks-compose && ./gradlew :app:testDebugUnitTest
  • 失败恢复:python3 scripts/eval_triggers.py --skill android-testing-unit

当范围扩大时,可交接给 android-testing-ui、android-ui-states-validation。

适用场景

  • 需要为 reducer、use case、repository 编写单元测试。
  • 需要测试生命周期安全的状态持有者。
  • 需要在不使用 instrumentation 的情况下覆盖同步失败、权限拒绝等分支。
  • 需要将单元测试与 UI 测试、架构清理区分处理。

限制与护栏

  • 优先在 CI 中使用可复现的检查,而非一次性本地操作。
  • 失败时应给出精确的修复路径,而不是模糊的质量门禁。
  • 示例与 fixture 中不得包含密钥、签名材料和生产凭据。
  • 性能与安全工作应作为有证据的工程任务,而非口口相传。
  • 反模式包括:增加测试但不增加信号;发布无人可复现的基准或安全扫描;将发布凭据硬编码到构建逻辑中;使用没有用户影响解释的合成指标。

完成清单

  • 实现路径明确、最小,并绑定到正确的 Android 表面。
  • 相关示例命令与基准提示已被执行或更新。
  • 当请求跨越边界时,已记录到相邻技能的交接。
  • 官方参考覆盖所选模式以及主要的迁移或故障排查路径。

官方参考

  • https://developer.android.com/training/testing/local-tests
  • https://developer.android.com/training/testing/fundamentals
  • https://developer.android.com/topic/libraries/architecture/viewmodel
  • https://kotlinlang.org/docs/jvm-test-using-junit.html