【HarmonyOS NEXT】如何对HSP模块进行单元测试

 【关键字】

HSP / 单元测试 / context

【问题描述】

  • 问题1:entry依赖了HSP模块,运行单元测试时报以下错误:

    ============================
    Failure[MSG_ERR_INSTALL_DEPENDENT_MODULE_NOT_EXIST]
    install /sdcard/entry-default-unsigned.hap failed!
    Error while Deploying HAP
    ============================

    单元测试的Run Configuration中没有Deploy Multi Hap的选项,文档中也没找到相关说明,应该如何配置?

  • 问题2:HSP模块源码中右键Show Context Actions只有新建Local Test的选项,能否新建Instrument Test?

  • 问题3:HSP模块用到了data preferences、resourceManager等接口,都需要context,如何对这部分功能进行单元测试?

【解决方案】

  • 问题1:此问题先试用问题3的临时方案测试。

  • 问题2:在HSP模块根目录的index文件中导出供主模块引用。

    export{hsp_localUnitTest_its}from"./src/test/LocalUnit.test"

    说明:仪器测试是有规格要求的,需要被测试的模块是HAP才可以。

  • 问题3:由于Instrument Test需要依赖HAP的原因,HSP无法使用Instrument Test单独测试,且本地测试能力当前有点弱,也无法满足测试要求。

    临时的解决方案可以尝试使用getContext().createModuleContext('library')方法获取对应模块包的context。

    参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-inner-application-context-0000001821000537#ZH-CN_TOPIC_0000001857917477__contextcreatemodulecontext

    示例代码如下:

    it('testPreferences', 0, async () => {
    // 如何获取context?
    const context = getContext().createModuleContext('library');
    const preferences = await dataPreferences.getPreferences(context, 'mystore', (err, val) => {
    if (err) {
    console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message);
    return;
    }
    console.info("Succeeded in getting preferences.");
    })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值