使用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.pswp.cn/news/909955.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/news/909955.shtml
    英文地址,請注明出處:http://en.pswp.cn/news/909955.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    開源物聯網(IoT)平臺對比

    一些 開源物聯網&#xff08;IoT&#xff09;平臺&#xff0c;它們廣泛應用于設備管理、數據采集、遠程監控和邊緣計算等場景&#xff1a; &#x1f31f; 主流開源物聯網平臺 平臺描述技術棧許可證ThingsBoard功能豐富&#xff0c;支持設備管理、遙測數據收集、規則引擎、告警…

    插值與模板字符串

    背景。表單渲染需要獲取對象中屬性進行賦值操作。 插值錯誤使用。以下方舉例。其中的placeholder不能被正確渲染。因為Vue 不會解析 {{ }} 在屬性中的內容&#xff1b;如果這樣寫編譯會出問題&#xff0c;而且比較難找出是哪的問題 模板字符串。正確做法時使用。模板字符串用…

    Luckfox Pico Pi RV1106學習<4>:RV1106的幀率問題

    Luckfox Pico Pi RV1106學習&#xff1c;4&#xff1e;&#xff1a;RV1106的幀率問題 1. 背景2. 問題 1. 背景 接上篇。我在應用中創建3個線程&#xff1a; CAM線程&#xff0c;使用V4L2驅動&#xff0c;從 /dev/video11 獲取圖像。ENC線程&#xff0c;使用硬件編碼器&#x…

    內測分發平臺應用的異地容災和負載均衡處理和實現思路?

    在軟件開發過程中&#xff0c;內測分發平臺扮演著至關重要的角色。它不僅幫助開發者將應用程序傳播給內部測試人員&#xff0c;還負責收集反饋、跟蹤錯誤并改進產品。然而&#xff0c;為了確保一個平穩、連貫的內測過程&#xff0c;對內測分發平臺實施異地容災和負載均衡機制是…

    國內用戶如何高效升級npm:使用阿里云鏡像加速指南

    文章目錄 引言為什么需要升級npm?環境檢查使用阿里云鏡像安裝nvm配置阿里云鏡像加速npm使用nvm安裝最新Node.js驗證安裝結果升級npm到最新版本解決常見問題1. 權限問題2. 鏡像源驗證3. 項目創建失敗創建測試項目總結引言 作為前端開發者,npm(Node Package Manager)是我們日…

    LeetCode--34.在排序數組中查找元素的第一個和最后一個位置

    解題思路&#xff1a; 1.獲取信息&#xff1a; 給定一個非遞減順序的整數數組&#xff0c;要求找出給定元素在該數組中從左往右第一次出現的位置和最后一個出現的位置&#xff0c;即&#xff1a;最右邊的位置和最左邊的位置 如果不存在該元素&#xff0c;則返回{ -1 , -1 } 限制…

    低秩分解的本質是通過基矩陣和系數矩陣的線性組合,以最小的存儲和計算代價近似表示復雜矩陣

    低秩分解的本質是通過基矩陣和系數矩陣的線性組合&#xff0c;以最小的存儲和計算代價近似表示復雜矩陣 flyfish 一、最基礎起點&#xff1a;數字與數組 數字與標量&#xff08;Scalar&#xff09; 單獨的數&#xff0c;如 1 , 2.5 , ? 3 1, 2.5, -3 1,2.5,?3&#xff0c;…

    SVN本地使用--管理個人倉庫

    1.SVN官網下載鏈接 Download – TortoiseGit – Windows Shell Interface to Git 一路安裝即可&#xff0c;安裝后在桌面空白處右鍵菜單可以看到選項即安裝成功。 2.建立個人SVN數據庫 選擇一個磁盤新建一個文件夾&#xff0c;在文件夾中右鍵創建數據庫。 3.上傳文件到SVN…

    Cloud Automation-Resource optimization, cleanup and dashboard

    如何使用Automation Account Run Book實現自動化 1. 什么是 Runbook&#xff1f; Azure Automation Account 中的 Runbook 是一套自動化腳本&#xff0c;用于在云中或混合環境中執行常規任務。Runbook 支持多種腳本語言&#xff0c;包括 PowerShell、Python、Graphical、Powe…

    leetcode_3583 統計特殊三元組

    1. 題意 求給定數組中下標 ( i , j , k ) (i,j,k) (i,j,k)的對數&#xff0c; 且滿足 i < j < k , 2 a [ j ] a [ i ] a [ k ] i < j <k,2 a[j]a[i]a[k] i<j<k,2a[j]a[i]a[k] 2. 題解 2.1 枚舉中間 三個數枚舉中間那個數&#xff0c;再存前綴和后綴個數…

    Sentinel(一):Sentinel 介紹和安裝

    一、Sentinel 介紹 1、什么是 Sentinel&#xff1f; 一句話來說&#xff0c;Sentinel就是&#xff1a;分布式系統的流量衛兵&#xff08;官網&#xff09;。 隨著微服務的普及&#xff0c;服務調用的穩定性變得越來越重要。Sentinel以“流量”為切入點&#xff0c;在流量 控制…

    pyspark 初試

    1、安裝jdk sudo apt-get install openjdk-17-jdk 2、安裝spark curl -o spark.tgz https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-4.0.0/spark-4.0.0-bin-hadoop3.tgz tar -xvf spark.tgz mv spark-4.0.0-bin-hadoop3 /opt/spark修改 /etc/profile 添加 exp…

    深入解析select模型:FD_SET機制與1024限制的終極指南

    在Linux網絡編程中&#xff0c;select函數是最經典的I/O多路復用技術之一&#xff0c;但其核心機制FD_SET的1024限制常成為高并發系統的瓶頸。本文將深入剖析FD_SET實現原理&#xff0c;并提供突破限制的實戰方案。 一、FD_SET底層結構解析 FD_SET本質是固定長度的位圖數組&am…

    C函數基礎.go

    前言&#xff1a; 在Go語言中&#xff0c;函數是構成程序的基本模塊&#xff0c;它封裝了一段具有特定功能的代碼&#xff0c;使得代碼更易讀&#xff0c;更易維護和重用。熟練掌握函數的定義、調用以及相關特性是成為Go語言開發者的必經之路。 目錄 函數定義&#xff1a;給代…

    什么是池化

    池化是深度學習中用于降低數據維度、提取核心特征的一種操作&#xff0c;主要應用于卷積神經網絡&#xff08;CNN&#xff09;。其核心思想是通過對局部區域進行聚合統計&#xff08;如取最大值、平均值&#xff09;&#xff0c;保留關鍵信息的同時減少計算量。 池化的作用 降維…

    C++ 性能分析工具:Valgrind 與 perf

    在 C 開發中&#xff0c;性能優化是提升軟件質量的關鍵環節。內存泄漏和 CPU 資源消耗是最常見的性能瓶頸&#xff0c;而 Valgrind 和 perf 作為專業的性能分析工具&#xff0c;能幫助開發者精準定位這些問題。下面將從工具原理、使用方法、實戰案例等方面進行詳細介紹。 一、…

    ABP VNext + MongoDB 數據存儲:多模型支持與 NoSQL 擴展

    &#x1f680; ABP VNext MongoDB 數據存儲&#xff1a;多模型支持與 NoSQL 擴展&#xff08;生產級實踐&#xff09; 目錄 &#x1f680; ABP VNext MongoDB 數據存儲&#xff1a;多模型支持與 NoSQL 擴展&#xff08;生產級實踐&#xff09;&#x1f3af; 引言&#x1f9f0…

    Cursor Rules 的核心定位與作用 DevOps是

    Cursor Rules 是 AI 編程工具 Cursor IDE 中的核心功能&#xff0c;用于約束 AI 生成代碼的行為&#xff0c;確保其符合項目規范、編碼風格或特定技術需求。它本質上是一套持久化、可復用的指令集&#xff0c;會動態插入到 AI 模型的上下文提示中&#xff0c;指導其生成代碼的邏…

    Qt事件處理機制

    事件的概念 在Qt中&#xff0c;以事件驅動UI工具集&#xff0c;包括信號和槽都依賴于Qt的事件處理機制。通常事件是由窗口系統或Qt自身產生的&#xff0c;用以響應所發生的各類事情。如&#xff1a;用戶按下并釋放鍵盤或鼠標、窗口縮放后重繪、定時器到時等。如下圖&#xff1…

    【慧游魯博】【11】小程序端·游覽畫卷修改·支持圖片url格式·結合圖床上傳和加載·數據對接

    文章目錄 需求修改細節前端主要修改點說明&#xff1a;前端傳遞格式 后端ArtifactItem 類&#xff1a;ScrollServiceImpl 類&#xff1a;修改 InfoPanel 結構重構 ScrollHorizontalRollComposer修改后的 ScrollHorizontalRollComposer移除冗余代碼修改總結 數據流圖片格式兼容性…