1.6 KiB
1.6 KiB
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,不要为了测试改生产代码结构。 - 改动后至少跑受影响的测试再提交。