chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡述HarmonyOS單元測試框架

DRXU_gh_019562b ? 來源:HarmonyOS開發(fā)者 ? 作者:HarmonyOS開發(fā)者 ? 2021-07-28 14:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

然而,由于HarmonyOS應(yīng)用具備一些獨(dú)特性(例如能夠?qū)崿F(xiàn)應(yīng)用的一次開發(fā)、多端部署,例如支持使用Java和JS兩種語言進(jìn)行開發(fā)和混合開發(fā)),因此,除了業(yè)界普遍的APP測試場景外,HarmonyOS應(yīng)用的測試還需要解決下述幾個問題:

1.“一次開發(fā),多端部署”應(yīng)用的測試

HarmonyOS APP支持”一次開發(fā),多端部署”,即同一套代碼可以針對不同的目標(biāo)設(shè)備形態(tài)編譯打包出對應(yīng)的hap。那么,針對不同設(shè)備形態(tài)的hap,應(yīng)該怎么進(jìn)行測試呢?

2. 混合語言應(yīng)用的測試

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

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

今天我們?yōu)榇蠹規(guī)淼氖荋armonyOS單元測試測試框架的編譯打包/運(yùn)行機(jī)制和關(guān)鍵功能特性,通過這個內(nèi)容,你可以快速了解和上手HarmonyOS單元測試測試框架哦~

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

測試框架機(jī)制介紹

編譯打包/運(yùn)行機(jī)制

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

而測試用例通過接口調(diào)用來完成對目標(biāo)代碼和APP組件的控制、觸發(fā)和查詢,從而實現(xiàn)測試邏輯。

測試代碼的分離打包和共進(jìn)程運(yùn)行機(jī)制

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

獲取測試APP進(jìn)程AbilityDelegator實例的方法:

AbilityDelegatorRegistry.getAbilityDelegator()

“一次開發(fā),多端部署”應(yīng)用的測試

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

一套測試代碼同時編譯出多種產(chǎn)品形態(tài)的測試hap如圖2所示:

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

(圖2 一套測試代碼同時編譯出多種產(chǎn)品形態(tài)的測試hap)

混合語言應(yīng)用的測試

混合語言應(yīng)用測試的語法介紹

HarmonyOS應(yīng)用可以使用Java或者JS開發(fā),相應(yīng)的,單元測試測試框架通過HJUnit和HJSUnit支持進(jìn)行Java和JS的測試,并且支持兩種語言混合執(zhí)行。

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

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

· JUnit4詳細(xì)介紹

https://junit.org/junit4/

HJSUnit單元測試測試框架參考OSGI插件機(jī)制和業(yè)內(nèi)通用的測試用例表達(dá)方式,使用describe和it函數(shù)標(biāo)識測試套和測試用例,采用expect(XXX).assertXX的斷言方式檢查結(jié)果。JS用例編寫語法支持JS的標(biāo)準(zhǔn) ES6語法。

多語言測試用例介紹

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

HJUnit測試用例

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

public class ExampleOhosTest { @Test public void checkScreenShape() { // 獲取 IAbilityDelegator 實例 final IAbilityDelegator delegator = AbilityDelegatorRegistry.getAbilityDelegator(); // 從IabilityDelegator實例中獲取應(yīng)用content內(nèi)容 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的彈出對話框接口,該接口可以實現(xiàn)在當(dāng)前頁面上層彈出對話框,顯示指定的文本,在接口測試中可以通過接口執(zhí)行回調(diào)判斷當(dāng)前接口是否調(diào)用成功,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語言進(jìn)行開發(fā),也支持混合語言開發(fā)。JS UI框架提供了JS FA(Feature Ability)調(diào)用Java PA(Particle Ability)的機(jī)制,該機(jī)制提供了一種通道來傳遞方法調(diào)用、處理數(shù)據(jù)返回以及訂閱事件上報。

當(dāng)前提供Ability和Internal Ability兩種調(diào)用方式,開發(fā)者可以根據(jù)業(yè)務(wù)場景選擇合適的調(diào)用方式進(jìn)行開發(fā)。

Ability:擁有獨(dú)立的Ability生命周期,F(xiàn)A使用遠(yuǎn)端進(jìn)程通信拉起并請求PA服務(wù),適用于基本服務(wù)供多FA調(diào)用或者服務(wù)在后臺獨(dú)立運(yùn)行的場景。

Internal Ability:與FA共進(jìn)程,采用內(nèi)部函數(shù)調(diào)用的方式和FA進(jìn)行通信,適用于對服務(wù)響應(yīng)時延要求較高的場景。該方式下PA不支持其他FA訪問調(diào)用。

JS端與Java端通過bundleName和abilityName來進(jìn)行關(guān)聯(lián)。在系統(tǒng)收到JS調(diào)用請求后,根據(jù)開發(fā)者在JS接口中設(shè)置的參數(shù)來選擇對應(yīng)的處理方式。開發(fā)者在指定接口onRemoteRequest()中實現(xiàn)PA提供的業(yè)務(wù)邏輯。詳細(xì)信息請參考JS FA調(diào)用Java PA機(jī)制—— JS FA如何調(diào)用Java PA。

· JS FA如何調(diào)用Java PA

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

而在測試方面,目前單元測試測試框架支持上述JS FA調(diào)用PA機(jī)制的使用。

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

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

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2141

    瀏覽量

    35099

原文標(biāo)題:一文帶你看懂HarmonyOS單元測試框架

文章出處:【微信號:gh_019562b5fb4b,微信公眾號:gh_019562b5fb4b】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    邊聊安全 | 軟件單元測試的設(shè)計方法

    上海磐時PANSHI“磐時,做汽車企業(yè)的安全智庫”軟件單元測試的設(shè)計方法寫在前面:軟件單元測試的設(shè)計是一個系統(tǒng)化的過程,旨在驗證代碼的最小可測試部分(通常是函數(shù)或方法)是否按預(yù)期工作。軟件單元
    的頭像 發(fā)表于 09-05 16:18 ?1854次閱讀
    邊聊安全 | 軟件<b class='flag-5'>單元測試</b>的設(shè)計方法

    HarmonyOSAI編程單元測試用例

    、private修飾的私有函數(shù)不支持生成單元測試用例。 使用該功能需先完成CodeGenie登錄授權(quán)。 本文主要從參考引用自HarmonyOS官方文檔
    發(fā)表于 08-27 14:33

    HarmonyOS AI輔助編程工具(CodeGenie)代碼測試

    代碼、生命周期函數(shù)、@Extend/@Styles/@Builder修飾的函數(shù)、private修飾的私有函數(shù)不支持生成單元測試用例。 使用該功能需先完成CodeGenie登錄授權(quán)。 以上材料主要參考引用HarmonyOS官方文檔。
    發(fā)表于 07-14 17:33

    HarmonyOS NEXT意圖框架習(xí)慣推薦一場景說明

    一、概述 意圖框架HarmonyOS系統(tǒng)級的意圖標(biāo)準(zhǔn)體系。將應(yīng)用和元服務(wù)的業(yè)務(wù)功能智慧分發(fā)給不同的系統(tǒng)入口,以“音樂播放”為例,HarmonyOS將業(yè)務(wù)分發(fā)給“小藝建議”,提供了桌面大流量曝光
    發(fā)表于 06-18 15:06

    新能源車軟件單元測試深度解析:自動駕駛系統(tǒng)視角

    “無不合理風(fēng)險”,推動車企采用形式化驗證(如數(shù)學(xué)證明)補(bǔ)充傳統(tǒng)測試。 winAMS工具的戰(zhàn)略價值****? 在新能源車軟件單元測試工具鏈中,?winAMS?憑借其?自適應(yīng)測試框架?
    發(fā)表于 05-12 15:59

    新能源車背后的隱形守護(hù)者:軟件單元測試的生死較量?

    。這個教科書級的避讓動作背后,是超過8000萬行代碼的精密協(xié)作,而確保這些代碼絕對可靠的秘密武器,正是我們今天要揭秘的軟件單元測試。 ?一、代碼世界的顯微鏡:單元測試為何重要? 如果把整車軟件比作一座摩天大樓,單元測試就是檢查
    的頭像 發(fā)表于 05-12 11:00 ?369次閱讀

    單元測試在嵌入式軟件中的關(guān)鍵作用及winAMS工具的卓越貢獻(xiàn)

    1.?單元測試概述 ?定義與核心目標(biāo)? 單元測試是軟件開發(fā)過程中針對程序模塊(如函數(shù)、類或組件)的最小可測試單元進(jìn)行的驗證活動。其核心目標(biāo)在于隔離代碼片段,驗證其功能是否符合設(shè)計預(yù)期,
    的頭像 發(fā)表于 04-11 14:31 ?626次閱讀

    嵌入式軟件單元測試的必要性、核心方法及工具深度解析

    一、為什么嵌入式軟件必須重視單元測試? ?嵌入式系統(tǒng)的特殊性? 在汽車 ECU、醫(yī)療設(shè)備控制器等場景中,軟件直接操控硬件,?單比特錯誤可能導(dǎo)致剎車失靈或呼吸機(jī)故障?。不同于 PC?軟件可頻繁熱更新
    的頭像 發(fā)表于 03-21 14:53 ?781次閱讀

    嵌入式系統(tǒng)開發(fā)中的測試方法 嵌入式系統(tǒng)開發(fā)與AI結(jié)合應(yīng)用

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

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

    在軟件開發(fā)中,測試是保證軟件質(zhì)量和可靠性的關(guān)鍵環(huán)節(jié)。作為領(lǐng)先的 CI/CD 平臺,CircleCI 提供了支持自動化測試的強(qiáng)大工具。其中,單元測試和組件測試是兩種重要的
    的頭像 發(fā)表于 12-03 09:18 ?799次閱讀

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

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

    嚴(yán)格的單元測試造就完美的軟件

    關(guān)鍵系統(tǒng)時,更是對軟件質(zhì)量提出了極高的要求。而單元測試作為軟件開發(fā)過程中的核心環(huán)節(jié),其重要性不言而喻。 單元測試的作用 單元測試是指對軟件中的最小可測試
    的頭像 發(fā)表于 11-26 13:22 ?675次閱讀

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

    引言 在現(xiàn)代軟件開發(fā)過程中,單元測試作為確保代碼質(zhì)量的重要環(huán)節(jié),得到了廣泛的關(guān)注和應(yīng)用。隨著嵌入式系統(tǒng)的復(fù)雜性日益增加,對高效、可靠的單元測試工具的需求也愈加迫切。WinAMS作為一款專為嵌入
    的頭像 發(fā)表于 11-19 16:41 ?950次閱讀

    HarmonyOS NEXT應(yīng)用元服務(wù)開發(fā)Intents Kit(意圖框架服務(wù))事件推薦開發(fā)者測試

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