【HarmonyOS】HarmonyOS Test测试用例中一些断言API的使用

【关键词】

单元测试框架、HarmonyOS Test、assertThrowError、assertFail、assertEqual

【测试代码及测试结果展示】

这里以新建API9工程自动生成的ohosTest来编写单元测试代码。

1、 测试代码:

javascript 复制代码
import { describe, it, expect } from '@ohos/hypium'
import abilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry';

class CharacterReader {
  constructor() {
  }
  unconsume(){
    throw new Error("this is an error")
  }
  unconsume1(a: number,b: number){
    if (a == 1 && b == 2) {
      throw new Error("this is an error")
    }
  }
  add(a: number,b: number) {
    return a + b
  }
}

export default function abilityTest() {
  describe('ActsAbilityTest', function () {
    // 验证待验证方法的行为时,不带括号
    it('assertThrowError',0,() => {
      let reader = new CharacterReader()
      expect(reader.unconsume).assertThrowError("this is an error")
    })
    // expect验证行为不能带括号,目前想要传递参数就另行封装一个空参方法,再转而测试这个空参方法,如下
    it('assertThrowError', 0, () => {
      let reader = new CharacterReader();
      let a = 1;
      let b = 2;
      const test:Function = () => {
        reader.unconsume1(a,b)
      }
      expect(test).assertThrowError("this is an error")
    })

    // 验证待验证方法的行为时,带括号
    it('assertEqual',0,() => {
      let reader = new CharacterReader()
      expect(reader.add(1,1)).assertEqual(2)
    })

    // assertFail断言,使一个用例强制失败
    it('assertFail',0,() => {
      let reader = new CharacterReader()
      expect(reader.unconsume).assertFail()
    })
  })
}

2、 测试结果

​

【参考文档】

1、https://developer.harmonyos.com/cn/docs/documentation/doc-guides/harmonyos_jnit_jsunit-0000001092459608

2、https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/unit-test-0000001507402510-V3#section160718461418

相关推荐
行者-全栈开发1 分钟前
华为云码道 CodeArts 实测:让 AI 独立开发一个鸿蒙原生专注计时应用「刻循」
harmonyos·arkts·鸿蒙·ai 编程·华为云码道·codearts 代码智能体·专注计时
resh_people3 分钟前
开源鸿蒙平台 KMP/CMP 三方库「kotlinx-datetime」适配全流程
华为·开源·harmonyos
威哥爱编程14 小时前
HarmonyOS 7 自由多窗实战:supportWindowMode + 断点布局,大屏多任务主动接管
harmonyos·arkts
威哥爱编程14 小时前
HarmonyOS 7 应用接续实战:continuable + onContinue 跨设备无缝流转,手机编辑平板接着搞
harmonyos·arkts
威哥爱编程14 小时前
HarmonyOS 7 视觉 AI 进阶实战:人脸检测 + 通用文字识别(OCR)两步接入
harmonyos
jingli916 小时前
一个测试用例把连接池卡死 30 秒:SQLite 连接池 max_size=1 下的重入自锁复盘
jvm·sqlite·测试用例
李游Leo21 小时前
HarmonyOS 7 API 26 升级适配实战:API Change Assistant、targetSDKVersion 与兼容性回归
harmonyos
OH_TPC1 天前
HarmonyOS APP开发---"智泊"智能停车App,需要用到这个库
harmonyos
用户117910488331 天前
AI粘贴多行需求为什么会误执行?hmharness安全粘贴拆解 GitHub:swsgbl/hmharness
ai编程·harmonyos
用户0934077735141 天前
HarmonyOS WPS Open SDK 实践:从 HAR 集成到 OpenFileRequest 最小闭环
typescript·harmonyos