<div style="text-align: center;font-size: xxx-large" >Hypium</div>
<div style="text-align: center">A unit test framework for OpenHarmonyOS application</div>
## Hypium是什么?
***
- Hypium是OpenHarmony上的测试框架,提供测试用例编写、执行、结果显示能力,用于OpenHarmony系统应用接口以及应用界面测试。
- Hypium结构化模型:hypium工程主要由List.test.js与TestCase.test.js组成。
```
rootProject // Hypium工程根目录
├── moduleA
│ ├── src
│ ├── main // 被测试应用目录
│ ├── ohosTest // 测试用例目录
│ ├── js/ets
│ └── test
│ └── List.test.js // 测试用例加载脚本,ets目录下为.ets后缀
│ └── TestCase.test.js // 测试用例脚本,ets目录下为.ets后缀
└── moduleB
...
│ └── List.test.js // 测试用例加载脚本,ets目录下为.ets后缀
│ └── TestCase.test.js // 测试用例脚本,ets目录下为.ets后缀
```
## 安装使用
***
- 在DevEco Studio内使用Hypium
- 工程级package.json内配置:
```json
"dependencies": {
"@ohos/hypium": "1.0.7"
}
```
注:
hypium服务于OpenHarmonyOS应用对外接口测试、系统对外接口测试(SDK中接口),完成HAP自动化测试。详细指导:
[Deveco Studio](https://developer.harmonyos.com/cn/develop/deveco-studio)
#### 通用语法
- 测试用例采用业内通用语法,describe代表一个测试套, it代表一条用例。
| No. | API | 功能说明 |
| --- | ---------- | ---------------------------------------------------------------------------------------------------------------------- |
| 1 | describe | 定义一个测试套,支持两个参数:测试套名称和测试套函数 |
| 2 | beforeAll | 在测试套内定义一个预置条件,在所有测试用例开始前执行且仅执行一次,支持一个参数:预置动作函数 |
| 3 | beforeEach | 在测试套内定义一个单元预置条件,在每条测试用例开始前执行,执行次数与it定义的测试用例数一致,支持一个参数:预置动作函数 |
| 4 | afterEach | 在测试套内定义一个单元清理条件,在每条测试用例结束后执行,执行次数与it定义的测试用例数一致,支持一个参数:清理动作函数 |
| 5 | afterAll | 在测试套内定义一个清理条件,在所有测试用例结束后执行且仅执行一次,支持一个参数:清理动作函数 |
| 6 | it | 定义一条测试用例,支持三个参数:用例名称,过滤参数和用例函数 |
| 7 | expect | 支持bool类型判断等多种断言方法 |
#### 断言库
- 示例代码:
```javascript
expect(${actualvalue}).assertX(${expectvalue})
```
- 断言功能列表:
| No. | API | 功能说明 |
| :--- | :------------------------------- | ---------------------------------------------------------------------------------------------- |
| 1 | assertClose | 检验actualvalue和expectvalue(0)的接近程度是否是expectValue(1) |
| 2 | assertContain | 检验actualvalue中是否包含expectvalue |
| 3 | assertDeepEquals | @since1.0.4 检验actualvalue和expectvalue(0)是否是同一个对象 |
| 4 | assertEqual | 检验actualvalue是否等于expectvalue[0] |
| 5 | assertFail | 抛出一个错误 |
| 6 | assertFalse | 检验actualvalue是否是false |
| 7 | assertTrue | 检验actualvalue是否是true |
| 8 | assertInstanceOf | 检验actualvalue是否是expectvalue类型 |
| 9 | assertLarger | 检验actualvalue是否大于expectvalue |
| 10 | assertLess | 检验actualvalue是否小于expectvalue |
| 11 | assertNaN | @since1.0.4 检验actualvalue是否是NaN |
| 12 | assertNegUnlimited | @since1.0.4 检验actualvalue是否等于Number.NEGATIVE_INFINITY |
| 13 | assertNull | 检验actualvalue是否是null |
| 14 | assertPosUnlimited | @since1.0.4 检验actualvalue是否等于Number.POSITIVE_INFINITY |
| 15 | assertPromiseIsPending | @since1.0.4 检验actualvalue是否处于Pending状态【actualvalue为promse对象】 |
| 16 | assertPromiseIsRejected | @since1.0.4 检验actualvalue是否处于Rejected状态【同15】 |
| 17 | assertPromiseIsRejectedWith | @since1.0.4 检验actualvalue是否处于Rejected状态,并且比较执行的结果值【同15】 |
| 18 | assertPromiseIsRejectedWithError | @since1.0.4 检验actualvalue是否处于Rejected状态并有异常,同时比较异常的类型和message值【同15】 |
| 19 | assertPromiseIsResolved | @since1.0.4 检验actualvalue是否处于Resolved状态【同15】 |
| 20 | assertPromiseIsResolvedWith | @since1.0.4 检验actualvalue是否处于Resolved状态,并且比较执行的结果值【同15】 |
| 21 | assertThrowError | 检验actualvalue抛出Error内容是否是expectValue |
| 22 | assertUndefined | 检验actualvalue是否是undefined |
| 23 | not | @since1.0.4 断言结果取反 |
示例代码:
```javascript
import { describe, it, expect } from '@ohos/hypium';
export default async function assertCloseTest() {
describe('assertClose', function () {
it('assertClose_success', 0, function () {
let a = 100;
let b = 0.1;
expect(a).assertClose(99, b);
})
})
}
```
#### 公共系统能力
| No. | API | 功能描述 |
| ---- | ------------------------------------------------------- | ------------------------------------------------------------ |
| 1 | existKeyword(keyword: string, timeout: number): boolean | @since1.0.3 hilog日志中查找指定字段是否存在,keyw
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
ToDoList.zip (198个子文件)
12999073030280531120 279B
15067949200444179520 257B
17537610345967393546 254B
18115777141572972937 737B
2504725116695034159 1KB
3772136559591512746 263B
4940775551135047528 152B
645848009334012671 671B
7936545212244888576 272B
8361736477983426714 737B
9406230919770810802 334B
modules.abc 34KB
modules.abc 33KB
hvigorw.bat 2KB
modules.cache 2KB
modules.cache 2KB
.clang-format 2KB
index.ets 4KB
OpenHarmonyTestRunner.ets 2KB
TestAbility.ets 2KB
ToDoItem.ets 2KB
Ability.test.ets 2KB
ToDoListPage.ets 2KB
CommonConstant.ets 2KB
LocalUnit.test.ets 2KB
EntryAbility.ets 1KB
DataModel.ets 1008B
BuildProfile.ets 373B
BuildProfile.ets 373B
Index.ets 267B
List.test.ets 105B
List.test.ets 99B
preview.ets 0B
.gitignore 119B
.gitignore 55B
.gitignore 50B
ResourceTable.h 2KB
ResourceTable.h 2KB
entry-default-signed.hap 62KB
entry-default-unsigned.hap 57KB
hvigorw 1KB
ToDoList.iml 754B
entry.iml 320B
resources.index 2KB
resources.index 2KB
pack.info 526B
hvigor-wrapper.js 37KB
service.js 35KB
configService.js 11KB
assertDeepEquals.js 10KB
MockKit.js 8KB
OhReport.js 8KB
core.js 5KB
DataDriver.js 5KB
ReportExtend.js 5KB
ExpectExtend.js 4KB
DeepTypeUtils.js 3KB
assertPromiseIsRejectedWithError.js 3KB
SysTestKit.js 3KB
ArgumentMatchers.js 3KB
index.js 3KB
Filter.js 3KB
event.js 2KB
assertPromiseIsResolvedWith.js 2KB
interface.js 2KB
assertPromiseIsRejectedWith.js 2KB
assertPromiseIsResolved.js 2KB
assertPromiseIsPending.js 1KB
assertClose.js 1KB
Constant.js 1KB
assertPromiseIsRejected.js 1KB
ExtendInterface.js 1KB
VerificationMode.js 1KB
assertThrowError.js 1KB
coverageCollect.js 1KB
assertContain.js 1KB
assertInstanceOf.js 1KB
isPromiseLike.js 998B
assertPosUnlimited.js 869B
assertNegUnlimited.js 868B
assertLargerOrEqual.js 859B
assertLessOrEqual.js 853B
assertLarger.js 849B
assertUndefined.js 844B
assertLess.js 843B
assertFalse.js 826B
assertNull.js 824B
assertNaN.js 820B
assertFail.js 757B
report-20241102183623116.json 170KB
report-20241102194054508.json 167KB
report-20241102194239200.json 166KB
report-20241102183300670.json 132KB
task-cache.json 48KB
file-cache.json 44KB
report-20241102183232184.json 33KB
output.json 5KB
sourceMaps.json 5KB
sourceMaps.json 5KB
id_defined.json 2KB
共 198 条
- 1
- 2
资源评论
sztuzyj2005
- 粉丝: 1
- 资源: 0
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功