色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

簡述HarmonyOS單元測試框架

DRXU_gh_019562b ? 來源:HarmonyOS開發者 ? 作者:HarmonyOS開發者 ? 2021-07-28 14:34 ? 次閱讀

作者:leidan、houjing ,華為軟件測試工程師

測試是APP開發中一個重要的環節,在開發迭代中借助高效易用的測試工具來編寫和執行自動化測試用例,并及時分析處理用例失敗項;同時測試也是保障應用質量和提升開發效率的重要途徑。

然而,由于HarmonyOS應用具備一些獨特性(例如能夠實現應用的一次開發、多端部署,例如支持使用Java和JS兩種語言進行開發和混合開發),因此,除了業界普遍的APP測試場景外,HarmonyOS應用的測試還需要解決下述幾個問題:

1.“一次開發,多端部署”應用的測試

HarmonyOS APP支持”一次開發,多端部署”,即同一套代碼可以針對不同的目標設備形態編譯打包出對應的hap。那么,針對不同設備形態的hap,應該怎么進行測試呢?

2. 混合語言應用的測試

HarmonyOS APP支持使用多語言(Java、JS等)混合開發且語言互通。那么,開發者應該如何測試多語言開發的APP呢?

想要知道上述兩個問題的答案,那就不要錯過今天的內容啦~

今天我們為大家帶來的是HarmonyOS單元測試測試框架的編譯打包/運行機制和關鍵功能特性,通過這個內容,你可以快速了解和上手HarmonyOS單元測試測試框架哦~

讓我們先來進入HarmonyOS測試框架機制介紹,方便大家了解我們的編譯打包和運行機制。

測試框架機制介紹

編譯打包/運行機制

根據HarmonyOS應用框架定義,一個HarmonyOS APP由一個entry-hap模塊和若干feature-hap模塊構成。根據HarmonyOS應用程序框架的多hap機制,開發者可借助編譯打包工具將“單元測試測試框架+測試代碼”打包為一個feature-hap,在打包過程中采用provided依賴模式關聯目標APP代碼(可為entry-hap或者feature-hap)。運行態下,測試hap(test.hap)與目標hap(app.hap)被應用程序框架共進程加載運行。

而測試用例通過接口調用來完成對目標代碼和APP組件的控制、觸發和查詢,從而實現測試邏輯。

測試代碼的分離打包和共進程運行機制

AbilityDelegator為元能力子系統提供的測試支持能力,用于控制Ability的生命周期,獲取Ability對象狀態,注入點擊事件等。使用AbilityDelegator可以提升HJUnit測試用例的開發效率和穩定性。

獲取測試APP進程AbilityDelegator實例的方法:

AbilityDelegatorRegistry.getAbilityDelegator()

“一次開發,多端部署”應用的測試

針對“一次開發,多端部署”應用的測試,測試代碼的編譯打包功能內置于HarmonyOS APP編譯打包工具鏈中,自動繼承”一次開發,多端部署”特性,即同一套測試代碼可被編譯打包出與目標代碼一致的針對多形態設備的hap包(目標設備形態在APP工程下的config.json中通過deviceType字段配置)。單元測試測試框架在運行時將自動識別當前設備形態并安裝運行相應的hap。

一套測試代碼同時編譯出多種產品形態的測試hap如圖2所示:

cf4a849a-ec15-11eb-a97a-12bb97331649.png

(圖2 一套測試代碼同時編譯出多種產品形態的測試hap)

混合語言應用的測試

混合語言應用測試的語法介紹

HarmonyOS應用可以使用Java或者JS開發,相應的,單元測試測試框架通過HJUnit和HJSUnit支持進行Java和JS的測試,并且支持兩種語言混合執行。

目前在2.2.0.200版本及以上的Deveco Studio上新建Java或JS模板工程,main和ohosTest目錄下均包含java和js目錄,用戶可以在ohosTest目錄下編寫java和js測試用例,對應工程在執行時,兩種語言的測試用例均會被執行。

HJUnit單元測試測試框架的實現基于JUnit4開源框架。JUnit為業界通用的Java單元測試框架,它通過Java注解機制提供了一套用例編寫語法規范,用戶使用注解來標注測試過程各階段的生命周期函數。HJUnit語法繼承JUnit4,JUnit4的詳細介紹可以參考下方鏈接。

· JUnit4詳細介紹

https://junit.org/junit4/

HJSUnit單元測試測試框架參考OSGI插件機制和業內通用的測試用例表達方式,使用describe和it函數標識測試套和測試用例,采用expect(XXX).assertXX的斷言方式檢查結果。JS用例編寫語法支持JS的標準 ES6語法。

多語言測試用例介紹

上文我們已經提到,DevEco Studio集成了HarmonyOS單元測試測試框架,為用戶提供了Java和JS的單元測試能力。開發者可以通過代碼直接測試項目中的指定類、方法,或是針對UI交互功能的測試等及時發現問題,同時避免在后期開發引入問題,大大提升了開發工作效率和保證開發質量。那么測試用例到底是怎么樣的,讓我們來一探究竟~

HJUnit測試用例

具體的Demo如下。在這個Demo中,checkScreenShape用例使用元能力子系統提供的AbilityDelegator測試Kit,可獲取HarmonyOS應用程序Context,進而可以在測試代碼中對被測應用進行查、控制、事件監聽等操作,以達到測試目的。

public class ExampleOhosTest { @Test public void checkScreenShape() { // 獲取 IAbilityDelegator 實例 final IAbilityDelegator delegator = AbilityDelegatorRegistry.getAbilityDelegator(); // 從IabilityDelegator實例中獲取應用content內容 final Context appContext = delegator.getAppContext(); DeviceCapability devCap = appContext.getResourceManager().getDeviceCapability(); assertNotNull(“Null deviceCapability”, devCap); if (devCap.deviceType == DeviceCapability.DEVICE_TYPE_WEARABLE) { // 斷言 assertTrue(“Unexpected display shape”, devCap.isRound); } else { assertFalse(“Unexpected display shape”, devCap.isRound); } } }

HJSUnit測試用例

這里我們測試的對象是pages的彈出對話框接口,該接口可以實現在當前頁面上層彈出對話框,顯示指定的文本,在接口測試中可以通過接口執行回調判斷當前接口是否調用成功,assertTrue表示成功。

it(‘testPromptDialog’, 0, function() { console.info(‘testPromptDialog START’) prompt.showDialog({ title: ‘dialog showDialog test’, message: ‘message of dialog’, buttons: [ { text: ‘OK’ } ], success: function(ret) { expect(true).assertTrue(); }, cancel: function() { expect(true).assertFalse(); }, complete: function() { console.log(‘[prompt.showDialog] complete’); } }); });

跨語言測試

HarmonyOS不僅支持使用Java或JS語言進行開發,也支持混合語言開發。JS UI框架提供了JS FA(Feature Ability)調用Java PA(Particle Ability)的機制,該機制提供了一種通道來傳遞方法調用、處理數據返回以及訂閱事件上報。

當前提供Ability和Internal Ability兩種調用方式,開發者可以根據業務場景選擇合適的調用方式進行開發。

Ability:擁有獨立的Ability生命周期,FA使用遠端進程通信拉起并請求PA服務,適用于基本服務供多FA調用或者服務在后臺獨立運行的場景。

Internal Ability:與FA共進程,采用內部函數調用的方式和FA進行通信,適用于對服務響應時延要求較高的場景。該方式下PA不支持其他FA訪問調用。

JS端與Java端通過bundleName和abilityName來進行關聯。在系統收到JS調用請求后,根據開發者在JS接口中設置的參數來選擇對應的處理方式。開發者在指定接口onRemoteRequest()中實現PA提供的業務邏輯。詳細信息請參考JS FA調用Java PA機制—— JS FA如何調用Java PA。

· JS FA如何調用Java PA

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-js-fa-call-pa-0000001050435961

而在測試方面,目前單元測試測試框架支持上述JS FA調用PA機制的使用。

HJSUnit單元測試測試框架借助了HarmonyOS應用程序框架的多hap機制,測試代碼支持“一次開發,多端部署”。HJSUnit和HJUnit集成到DevEco Studio上的項目模板上,方便用戶采用Java和JS兩種語言做測試。

兩個測試框架測試框架已隨DevEco Studio的Harmony SDK對外發布,工具的更新迭代也與DevEco Studio的更新節奏保持一致,歡迎大家點擊【閱讀原文】查看更多測試詳情~

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • HarmonyOS
    +關注

    關注

    79

    文章

    1973

    瀏覽量

    30143

原文標題:一文帶你看懂HarmonyOS單元測試框架

文章出處:【微信號:gh_019562b5fb4b,微信公眾號:gh_019562b5fb4b】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌入式系統開發中的測試方法 嵌入式系統開發與AI結合應用

    嵌入式系統開發中的測試方法 嵌入式系統開發是一個復雜的過程,涉及到硬件和軟件的緊密結合。測試是確保系統可靠性和性能的關鍵步驟。以下是一些常用的測試方法: 單元測試
    的頭像 發表于 12-09 10:22 ?313次閱讀

    開發者必讀!CircleCI?組件測試單元測試全解析

    在軟件開發中,測試是保證軟件質量和可靠性的關鍵環節。作為領先的 CI/CD 平臺,CircleCI 提供了支持自動化測試的強大工具。其中,單元測試和組件測試是兩種重要的
    的頭像 發表于 12-03 09:18 ?194次閱讀

    汽車軟件單元測試的重要性

    測試不充分密切相關,這引發了社會各界對汽車軟件健壯性的重要性進行深入思考。本文將探討汽車軟件的測試,尤其是單元測試的重要性,以及WinAMS單元測試工具在這一過程中的關鍵作用。 一、
    的頭像 發表于 11-29 10:57 ?153次閱讀

    嚴格的單元測試造就完美的軟件

    關鍵系統時,更是對軟件質量提出了極高的要求。而單元測試作為軟件開發過程中的核心環節,其重要性不言而喻。 單元測試的作用 單元測試是指對軟件中的最小可測試
    的頭像 發表于 11-26 13:22 ?163次閱讀

    嵌入軟件單元/集成測試工具專業分析

    引言 在現代軟件開發過程中,單元測試作為確保代碼質量的重要環節,得到了廣泛的關注和應用。隨著嵌入式系統的復雜性日益增加,對高效、可靠的單元測試工具的需求也愈加迫切。WinAMS作為一款專為嵌入
    的頭像 發表于 11-19 16:41 ?220次閱讀

    HarmonyOS NEXT應用元服務開發Intents Kit(意圖框架服務)事件推薦開發者測試

    意圖框架向開發者提供真機測試能力,即開發者可連接設備進行調測。開發者完成代碼開發之后,功能正式上架應用市場前,可以在HarmonyOS NEXT設備上面進行自驗證,打磨體驗。真機測試
    發表于 11-18 17:39

    鴻蒙語言基礎類庫:ohos.application.testRunner TestRunner 測試

    TestRunner模塊提供了框架測試的能力。包括準備單元測試環境、運行測試用例。
    的頭像 發表于 07-12 09:32 ?294次閱讀

    單元測試、集成測試自動化工具

    CoverageMaster winAMS :?適用于嵌入式目標機代碼的單元測試/集成測試工具 全面支持嵌入式微機!驗證嵌入式C/C++軟件 實施以模塊為單位的自動化單元測試工具 不需要
    的頭像 發表于 06-26 13:41 ?438次閱讀
    <b class='flag-5'>單元測試</b>、集成<b class='flag-5'>測試</b>自動化工具

    接口測試的工具有哪些種類

    單元測試框架 單元測試框架主要用于測試單個模塊或函數的功能。雖然它們主要用于開發階段,但也可以用于接口
    的頭像 發表于 05-30 15:07 ?700次閱讀

    嵌入軟件單元測試工具的作用

    嵌入軟件單元測試工具是現代軟件開發過程中不可或缺的一環。它的作用在于幫助開發人員對軟件中的各個單元進行測試,以確保其功能的正確性和穩定性。單元測試是軟件開發過程中的一種
    的頭像 發表于 04-23 15:31 ?428次閱讀
    嵌入軟件<b class='flag-5'>單元測試</b>工具的作用

    LitePoint推出其最新的5G O-RAN無線電單元測試技術

    無線測試解決方案先進供應商LitePoint宣布將參加于4月12日在臺北舉行的2024年D Forum移動通信論壇,展示其最新的5G O-RAN無線電單元測試技術。
    的頭像 發表于 04-11 15:26 ?497次閱讀

    鴻蒙OS開發實戰:【自動化測試框架】使用指南

    為支撐HarmonyOS操作系統的自動化測試活動開展,我們提供了支持JS/TS語言的單元及UI測試框架,支持開發者針對應用接口進行
    的頭像 發表于 04-08 14:49 ?1372次閱讀
    鴻蒙OS開發實戰:【自動化<b class='flag-5'>測試</b><b class='flag-5'>框架</b>】使用指南

    單元/集成測試服務

    單元/集成測試旨在證明被測軟件實現其單元/架構設計規范、證明被測軟件不包含非預期功能。經緯恒潤測試團隊擁有豐富的研發經驗、嚴格的流程管控,依據ISO26262/ASPICE等開展符合要
    的頭像 發表于 02-29 13:27 ?376次閱讀
    <b class='flag-5'>單元</b>/集成<b class='flag-5'>測試</b>服務

    Tessy—嵌入式軟件單元測試/集成測試工具

    搭建測試環境、執行測試、評估測試結果并生成測試報告。目前Tessy被廣泛應用在汽車電子客戶中,在V模型開發中,Tessy主要應用在單元測試
    的頭像 發表于 01-15 14:39 ?817次閱讀
    Tessy—嵌入式軟件<b class='flag-5'>單元測試</b>/集成<b class='flag-5'>測試</b>工具
    主站蜘蛛池模板: 国产亚洲精品久久77777| 国产免费播放一区二区三区| 手机在线观看无码日韩视频| 久久亚洲AV成人无码动态图| 国产麻豆精品传媒AV国产在线 | 国产精品AV无码免费播放| 一本道色综合手机久久| 十分钟免费观看高清视频大全| 快播性爱电影| 久久精品亚洲牛牛影视| 国产免费人成在线视频有码| 啊轻点啊再深点视频免费| 在线高清电影理论片4399| 羞羞答答dc视频| 脱女学小内内摸出水网站免费 | 玖玖爱在线播放| 久久久99精品成人片中文| 国内精自品线一区91| 果冻传媒MV免费播放在线观看| 国产超碰人人爱被IOS解锁| 成电影人免费网站| 超碰免费碰免费视频| 野花香HD免费高清版6高清版| 少妇高潮惨叫久久久久久欧美| 暖暖日本 在线 高清| 女侠含泪巨臀迎合79| 牛牛在线精品视频| 捏奶动态图吃奶动态图q| 麻豆狠色伊人亚洲综合网站| 老师的快感电影完整版| 蜜桃日本免费观看MV| 欧美日韩免费播放一区二区| 亚洲午夜无码久久久久蜜臀av| 乌克兰美女x?x?y?y| 亚洲AV成人无码999WWW| 亚洲国产精品日本无码网站| 亚洲一区免费香蕉在线| 22eee在线播放成人免费视频| hdxxxx58丝袜连裤袜| 囯产精品久久久久久久久蜜桃| 国产午夜福利100集发布|