创建单元测试Skill create-unit-test

这是一个用于指导在Android项目中创建和运行单元测试的规范指南。它详细说明了从分析代码、规划测试用例、设置测试文件(使用Robolectric和Kotlin)、编写测试方法到运行和调试测试的完整工作流程。关键词包括:单元测试、Android测试、Robolectric、Kotlin、测试驱动开发、Gradle、测试用例设计、测试自动化、软件质量保证。

测试 0 次安装 4 次浏览 更新于 3/2/2026

name: 创建单元测试 description: 按照项目架构和指南(Robolectric、命名规范、位置)创建并运行单元测试。

创建单元测试

此技能指导创建单元测试,以确保一致性和正确性。

工作流程

  1. 分析与规划:

    • 目标: 理解需要测试的内容。
    • 操作: 检查源代码。
    • 操作: 识别“快乐路径”用例(核心功能)。
    • 操作: 根据可能性识别“错误用例”和“边界用例”。
    • 操作: 不要建议实现细节,除非被要求;专注于行为。
  2. 设置测试文件:

    • 命名: [原始类名]Test.kt
    • 位置: [模块]/src/test/java/[包路径]/
    • 运行器: 如果测试Android组件,必须使用Robolectric。
    • 模拟: 优先创建 Fakes,而不是Mocks或补丁。仅在Fakes过于复杂时使用Mocks。
  3. 实现测试:

    • 编写清晰、描述性强的测试方法。
    • 遵循“准备-执行-断言”模式。
    • 确保所有资源(字符串、主题)都通过Robolectric正确模拟或提供。
  4. 运行测试:

    • 命令: ./gradlew :[模块]:testDebugUnitTest
    • 示例: ./gradlew :database:testDebugUnitTest
    • 提示: 在提交任何代码前,运行 ./gradlew testDebugUnitTest 以确保所有测试通过。
  5. 处理失败:

    • 目标: 诊断并修复问题。
    • 操作: 如果测试失败,定位完整的错误报告。
    • 路径: [模块]/build/test-results/testDebugUnitTest/TEST-[包名.测试类名].xml
    • 示例: app/build/test-results/testDebugUnitTest/TEST-com.anysoftkeyboard.janus.app.MainActivityTest.xml

指南

  • 一致性: 始终将测试放在 test 源集中,而不是 androidTest 中(除非专门编写仪器化测试,这对于此技能来说很少见)。
  • 可靠性: 避免不稳定的测试。确保确定性行为。