HarmonyOS 鸿蒙Next 单元测试

发布于 1周前 作者 gougou168 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 单元测试 关于鸿蒙中的单测有几个问题咨询一下:

1、我在新建模块中执行单测,会一直loading,一直无法结束,在有entry的test目录下写的单测是可以正常finish的。

2、单元测试中怎么获取context,因为单测中我要Mock一些数据,需要用到Context。

3、单元测试的覆盖率在哪里看?

3 回复
  • 可以使用一个类封装context,在ability的onCreate里setContext保存到类中,在需要使用的地方导入类getContext,示例代码如上面回复所示
public static getContext(): GlobalContext {
if (!GlobalContext.instance) {
GlobalContext.instance = new GlobalContext();
return GlobalContext.instance;
获取key值对应的上下文
注意:单框架上下文采用分层结构,不同层级的上下文功能不一致
return this.objects.get(value);
if (key && objectClass) {
this.objects.set(key, objectClass);
} else {
HiLog.e(TAG, 'Both key and objectClass are required');

本地单元测试(test目录),可以依赖设备,覆盖率在4.0上不行,在4.1的1130版本可以;

仪器测试(ohosTest),可以依赖测试,覆盖率也都可以,har和hsp两个库没有ohosTest,可以单独去做执行单测并统计覆盖率吗? >可以但是用1130的4.1版本ide;

另外,feature模块和entry平级也有ohosTest,可以执行仪器测试;

代码覆盖率:

  1. 在工程目录中,单击右键 > Run’测试类名称’with coverage,执行测试。
  2. 打开测试套件,单击对应方法左侧按钮。
  3. 执行完测试任务后,控制台中会打印报告的路径。
  4. 在本地找到报告的位置并在浏览器中打开,查看代码覆盖率详情。

更多关于HarmonyOS 鸿蒙Next 单元测试的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


想问一下是在哪里初始化context并保存?

针对帖子标题“HarmonyOS 鸿蒙Next 单元测试”的问题,以下是专业且简洁的回答:

HarmonyOS 鸿蒙Next的单元测试主要通过集成测试框架来实现。该测试框架提供了丰富的API,用于编写和执行测试用例,以确保代码的质量和稳定性。

在HarmonyOS中,单元测试通常关注以下几个方面:

  1. 功能测试:验证各个模块或函数是否按照预期工作。
  2. 边界测试:测试模块在极端或边界条件下的行为,确保系统的鲁棒性。
  3. 性能测试:评估模块的运行效率,包括响应时间、资源消耗等。

为了编写单元测试,开发者需要遵循HarmonyOS的测试框架规范,利用提供的注解和断言来定义测试用例。测试用例应尽可能覆盖代码的各种路径和场景,以确保测试的全面性和有效性。

在执行单元测试时,HarmonyOS的测试框架会自动收集测试结果,并生成详细的测试报告。开发者可以根据测试报告中的信息,快速定位并修复代码中的缺陷。

如果开发者在编写或执行单元测试过程中遇到问题,可以参考HarmonyOS的官方文档或社区资源。若问题依旧无法解决,请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部