harness: initial project setup
This commit is contained in:
43
docs/testing.md
Normal file
43
docs/testing.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# 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`,不要为了测试改生产代码结构。
|
||||
- 改动后至少跑受影响的测试再提交。
|
||||
Reference in New Issue
Block a user