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