Files
harmony-client/docs/testing.md

44 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Testing(测试)
测试框架:`@ohos/hypium`(断言 + 用例组织),`@ohos/hamock`(mock)。已在 `oh-package.json5` 声明。
## 两类测试 Two Test Kinds
| 类型 Kind | 目录 Dir | 说明 Notes |
|----------|---------|-----------|
| 本地单元测试 Local unit | `entry/src/test/` | 不依赖设备,跑纯逻辑(viewmodel/data/model 等) |
| 设备集成测试 Device test | `entry/src/ohosTest/` | 依赖真机/模拟器,跑 Ability/UI/系统能力 |
已有示例文件:`LocalUnit.test.ets`、`List.test.ets`(单测);`Ability.test.ets`、`List.test.ets`(设备测试)。
## 写法(hypium 语法)
```typescript
import { describe, it, expect } from '@ohos/hypium';
export default function exampleTest() {
describe('UserRepository', () => {
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
- 每个 `viewmodel/`、`data/repository/`、`model/` 的新逻辑都要有对应的本地单测。
- 涉及 UI/系统能力/Ability 生命周期 → 设备测试(`ohosTest/`)。
- mock 用 `@ohos/hamock`,不要为了测试改生产代码结构。
- 改动后至少跑受影响的测试再提交。