Files
harmony-client/docs/testing.md
2026-09-11 14:47:53 +08:00

1.6 KiB
Raw Blame History

Testing(测试)

测试框架:@ohos/hypium(断言 + 用例组织),@ohos/hamock(mock)。已在 oh-package.json5 声明。

两类测试 Two Test Kinds

类型 Kind 目录 Dir 说明 Notes
本地单元测试 Local unit entry/src/test/ 不依赖设备,跑纯逻辑(service/model 等)
设备集成测试 Device test entry/src/ohosTest/ 依赖真机/模拟器,跑 Ability/UI/系统能力

已有示例文件:LocalUnit.test.ets、List.test.ets(单测);Ability.test.ets、List.test.ets(设备测试)。

写法(hypium 语法)

import { describe, it, expect } from '@ohos/hypium';

export default function exampleTest() {
  describe('UserService', () => {
    it('should_return_trimmed_name', 0, () => {
      expect(formatName('  alice  ')).assertEqual('alice');
    });
  });
}
  • 用例名用 should_xxx 描述预期行为。
  • 测试即规格(test as spec):测试描述的是"应该发生什么",agent 读测试即可理解预期行为。

运行 Run

  • DevEco Studio:右键 test/ 或 ohosTest/ 目录 → Run Tests(推荐,主路径)。
  • 命令行(hvigor):
    • 本地单测:hvigorw test 相关 task
    • 设备测试:hvigorw test(需连接设备/模拟器)

约定 Conventions

  • 每个 service/、model/ 的新逻辑都要有对应的本地单测。
  • 涉及 UI/系统能力/Ability 生命周期 → 设备测试(ohosTest/)。
  • mock 用 @ohos/hamock,不要为了测试改生产代码结构。
  • 改动后至少跑受影响的测试再提交。