当前位置: 首页 > news >正文

使用DevEco Testing快速创建HarmonyOS5单元测试

1.测试环境准备

  • 确保已安装DevEco Studio 5.0+
  • 在module的build.gradle添加依赖:
dependencies {testImplementation 'org.junit.jupiter:junit-jupiter:5.8.2'ohosTestImplementation 'com.huawei.ohos.testkit:runner:1.0.0.200'
}

2.创建测试类(示例测试计算器功能)


import { describe, it, expect } from '@ohos/hypium'
import Calculator from '../src/main/ets/Calculator'describe('CalculatorTest', () => {it('testAdd_shouldReturn4_when2Plus2', () => {let calc = new Calculator()expect(calc.add(2, 2)).assertEqual(4)})it('testDivide_shouldThrowError_whenDivideByZero', () => {let calc = new Calculator()expect(() => calc.divide(5, 0)).toThrow()})
})

该测试用例包含正常运算和异常场景验证

3.配置测试运行器

<?xml version="1.0" encoding="UTF-8"?>
<configuration><target name="Phone" type="device"><parameter key="deviceType" value="phone"/></target><coverage enabled="true"/><timeout value="60000"/>
</configuration>

支持设备类型选择和代码覆盖率统计

4.执行测试(三种方式任选):

  • 右键测试类选择"Run 'CalculatorTest'"
  • 命令行执行:hdc shell aa test -b your.bundle.name
  • 持续集成:配置TestKit到Jenkins流水线

5.查看测试报告:
测试完成后自动生成HTML报告,路径为:
/build/reports/tests/deviceTest/index.html

关键技巧:

  1. 使用@BeforeEach/@AfterEach处理测试前置/后置操作
  2. 通过@ParameterizedTest实现参数化测试
  3. 对UI组件使用@UiTest注解
  4. 模拟对象推荐使用ohos.mock()方法

    http://www.dtcms.com/a/252501.html

    相关文章:

  1. 从源码角度了解Elasticsaerch(分布式协调排序、深分页问题)
  2. 【Java】脱离 JVM 约束 GraalVM + Liberica NIK + Spring + Docker 将 Java 编译为平台二进制可执行文件
  3. 亚马逊深度整合全食超市,重塑全球跨境电商与生鲜零售格局
  4. FPGA基础 -- Verilog语言要素之值集合
  5. CentOS7安装MySQL8.0.42
  6. 展开说说Android之Retrofit详解_使用篇
  7. 深度解析MySQL中的Join算法:原理、实现与优化
  8. 如何在 Windows 上打造 macOS 式快速查看体验?
  9. 2025最新1000+道Java面试题+答案整理(附JVM/MySQL/Spring/Redis)
  10. 136.在 Vue3 中使用 OpenLayers 实现 GroupLayer 的添加、删除、显示、隐藏
  11. P2C (Point-to-Curve) 算法深度解析
  12. 传统的提示词优化中,损失函数有哪些
  13. iOS即时通讯发送图片消息内存暴涨优化
  14. 10.C S编程错误分析
  15. MySQL 自增主键 ID 设置为 0有坑
  16. 二叉树的最大深度题解
  17. Apache Kafka Connect任意文件读取漏洞(CVE-2025-27817)
  18. AWS Config:概述、优势以及如何开始?
  19. Jmeter的三种参数化方式详解
  20. 【WPF】WPF 中 `DisplayMemberPath` 与 `SelectedValuePath` 的深入理解与实战应用
  21. Kafka Connect架构深度解析:从分布式设计到组件交互机制
  22. 对抗串扰的第一武器
  23. 基于深度学习的智能视频内容理解系统:技术与实践
  24. 【JSON-To-Video】AI智能体开发:为视频图片元素添加动效(滑入、旋转、滑出),附代码
  25. 苍穹外卖--基于Spring Cache缓存套餐
  26. PSP专辑17本PDF
  27. Ubuntu设置nginx自启动
  28. 力扣经典算法篇-17-反转字符串中的单词(逆序遍历,数组分割,正则表达式)
  29. java 基础方法 list分页
  30. Modern C++(五)初始化