<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.6"
}
```
注:
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
HF音乐-鸿蒙音乐播放器源码
5星 · 超过95%的资源 需积分: 0 191 浏览量
更新于2024-05-09
3
收藏 30.5MB ZIP 举报
【HF音乐-鸿蒙音乐播放器源码】是一款基于HarmonyOS操作系统开发的音乐播放软件。作为HarmonyOS生态的一部分,这款源码提供了一个完整的音乐播放解决方案,包含了音乐播放器的基础功能,用户在获取源码后,只需进行必要的配置和签名替换,就能在HarmonyOS设备上运行使用。
我们要理解HarmonyOS,它是华为推出的一款面向全场景的分布式操作系统,旨在打破不同设备间的界限,实现跨平台、多设备间的无缝协同。它采用了微内核设计,强调安全性、高效率和低延迟,为开发者提供了丰富的API和工具,使得开发过程更加便捷。
该音乐播放器源码的核心功能包括:
1. **音乐播放**:支持音频文件的播放、暂停、停止以及快进、后退等基本操作,确保用户能够流畅地听音乐。
2. **歌曲库管理**:具备歌曲搜索、分类、排序等功能,帮助用户快速找到想听的音乐。
3. **播放列表**:允许用户创建、编辑和管理播放列表,满足个性化听歌需求。
4. **音质设置**:可能包含不同音质选项,如标准音质、高清音质等,以适应不同的网络环境和用户偏好。
5. **播放模式**:支持单曲循环、列表循环、随机播放等多种播放模式。
6. **界面交互**:具有美观的用户界面和良好的交互体验,符合HarmonyOS的设计规范。
7. **后台播放**:即使在应用后台,也能保持音乐播放,方便用户在其他操作中继续享受音乐。
为了将此源码应用于实际设备,开发者需要完成以下步骤:
1. **环境配置**:安装HarmonyOS开发环境,包括IDE(如DevEco Studio)和相关SDK。
2. **导入项目**:在DevEco Studio中导入CloudMusic源码项目,进行编译和调试。
3. **真机签名替换**:由于安全和权限问题,开发者需要使用自己的签名证书对应用进行签名,以便在真实设备上安装和运行。
4. **自定义配置**:根据需求,可能需要修改源码中的配置文件,如服务器地址、版权信息等。
5. **测试与优化**:在HarmonyOS设备上进行功能测试,确保所有功能正常,并进行性能优化,提升用户体验。
通过这个开源项目,开发者不仅可以学习到HarmonyOS应用程序的开发技术,还可以借鉴其设计理念,为构建其他类型的HarmonyOS应用提供参考。同时,对于想要深入研究HarmonyOS生态的开发者,这是一个很好的实践平台,有助于提升其在分布式应用开发上的技能。通过观看效果展示地址(https://live.csdn.net/v/385772),可以直观地了解该音乐播放器的实际运行效果,进一步指导开发工作。
幻凡ss
- 粉丝: 181
- 资源: 6
最新资源
- 机械手自动排列控制PLC与触摸屏程序设计
- uDDS源程序publisher
- 中国风格, 节日 主题, PPT模板
- 生菜生长记录数据集.zip
- 微环谐振腔的光学频率梳matlab仿真 微腔光频梳仿真 包括求解LLE方程(Lugiato-Lefever equation)实现微环中的光频梳,同时考虑了色散,克尔非线性,外部泵浦等因素,具有可延展
- 企业宣传PPT模板, 企业宣传PPT模板
- jetbra插件工具,方便开发者快速开发
- agv 1223.fbx
- 全国职业院校技能大赛网络建设与运维规程
- 混合动力汽车动态规划算法理论油耗计算与视频教学,使用matlab编写快速计算程序,整个工程结构模块化,可以快速改为串联,并联,混联等 控制量可以快速扩展为档位,转矩,转速等 状态量一般为SOC,目