【鴻蒙學院】鴻蒙IDE迎來重大更新,新特性足以讓你尖叫

鴻蒙(HarmonyOS)最新版的IDE Beta3於2021-03-31日發佈,beta3增長了不少吸引人的功能,這些功能有一些與編程有關,有一些與配置、模板有關。本文主要深刻介紹與編程有關的3個特性:雙向預覽、Java UI數據模擬和測試框架,至於其餘的一些新特性,如更多的phone模板,API version的變化,可視化配置config.json等,能夠參考我下面的視頻。編程


視頻演示json


1. 雙向預覽功能框架

預覽器增長了雙向預覽功能,所謂雙向預覽,針對的是佈局。修改佈局文件的代碼,會馬上在預覽器中顯示佈局的效果,而經過點擊佈局效果中的組件,會自動定位到佈局中的特定代碼。
如今讓我來演示一下,首先建立一個HarmonyOS工程,而後打開自動生成的佈局文件,多輸入一些佈局代碼,以下所示。佈局

【鴻蒙學院】鴻蒙IDE迎來重大更新,新特性足以讓你尖叫
而後啓動右側的預覽器,效果以下:測試

【鴻蒙學院】鴻蒙IDE迎來重大更新,新特性足以讓你尖叫

能夠看到,佈局文件的效果直接體如今了預覽器上。不過目前仍然是單向預覽。gradle


點擊預覽器右上角兩個T的按鈕,在右側會顯示組件樹視圖,下面是當前選中組件的屬性列表,能夠直接修改屬性的值。當選中組件樹或預覽器中的組件時,佈局代碼就會自動定位到對應的組件,以下所示。動畫

【鴻蒙學院】鴻蒙IDE迎來重大更新,新特性足以讓你尖叫
不過目前並非全部狀況都支持同步,有以下狀況目前還沒法同步:
(1) hml佈局代碼裏使用了數據綁定的屬性
(2)xml佈局代碼裏使用了資源引用的屬性
(3)UI界面設置了動畫效果ui


2.Java UI 數據模擬url


這個功能至關有趣,其實核心理念就是見什麼人說什麼話。在應用發佈時,執行的是真正的業務邏輯代碼,數據也是真實的。但在調試時,有時用真實的數據測試太費勁,這些真實的數據可能難以得到,或獲取很麻煩,或者數據量很大,反正,就是各類不爽。.net


咱們指望在應用發佈時使用真實的數據,而在調試時,使用測試數據,關鍵一點是,不用修改任何代碼,根據調試或發佈的場景自動切換。這就是Java UI數據模擬的核心做用。其實這個功能的理念與我10年前作的一個實驗性項目相似,這是一個模擬NFC的系統,支持Android。在開發時,使用模擬的NFC Tag和模擬的移動設備進行測試,只須要將NFC Tag拖動到模擬設備上,就至關於真實環境中的NFC Tag與手機接觸。而後將App發佈到真機上時,系統會自動探測當前運行環境,若是是真機,那麼就會自動切換到使用真正的NFC芯片讀寫NFC Tag,這一過程是徹底透明,不須要修改一行代碼就能夠自動切換,以下所示。

【鴻蒙學院】鴻蒙IDE迎來重大更新,新特性足以讓你尖叫
鴻蒙的Java UI數據模擬也相似,這個功能是爲Java UI模擬數據的。由一系列API組成,不過這些API默認並無包含在鴻蒙SDK中,須要在模塊的build.gradle中添加以下依賴:
【鴻蒙學院】鴻蒙IDE迎來重大更新,新特性足以讓你尖叫

運行程序,會先下載這個依賴。而後建立數據模擬類,代碼以下:
【鴻蒙學院】鴻蒙IDE迎來重大更新,新特性足以讓你尖叫

這裏用onStart方法攔截了Slice的onStart方法,至關於AOP的切片。在onStart方法中調用了Slice的onStart方法。若是這裏不調用,那麼Slice中的onStart方法是不會調用的(會顯示黑屏)。在onStart方法中設置了模擬數據(name和age)。也就是說,Java UI數據模擬,其實借鑑了AOP的部分概念。


而後在Slice的onStart方法中可使用下面的代碼使用數據。這裏的代碼其實並不能感知用到的數據是模擬數據,仍是真實的數據。

【鴻蒙學院】鴻蒙IDE迎來重大更新,新特性足以讓你尖叫
如今不要運行,由於運行就使用正式的數據了,如今切換到Slice類,而後打開預覽器,會看到以下所示的效果。
 是否是兩個Text組件的內容都變了。在預覽器中可使用模擬數據檢查Slice中的代碼是否正確,固然,Page Ability也可使用這個功能。


3. 新增的測試框架


建立HarmonyOS工程,會發現多了一個ohosTest,這是新增的測試框架的目錄,能夠利用測試框架編寫測試代碼,讓咱們能夠用TDD的方式開發程序。也就是在寫程序以前,先爲App設定一個邊界,只要App中的相關數據越雷池一步,測試框架就會檢測出來。

【鴻蒙學院】鴻蒙IDE迎來重大更新,新特性足以讓你尖叫
在開發階段,開發者可藉助由Java測試框架提供的IAbilityDelegator,進行APP組件操控測試(如:啓動/關閉FA、獲取界面UI元素、注入UI點擊事件等),及時發現UI交互問題。或使用JUnit 4語法範式,編寫測試用例、調用系統接口,得到API返回值或觸發業務流程,根據接口返回值或業務狀態,判斷業務邏輯的正確性。


下面給出一個例子,打開ExampleOhosTest.Java文件,會看到以下代碼:
【鴻蒙學院】鴻蒙IDE迎來重大更新,新特性足以讓你尖叫

這是系統自動生成的測試用例代碼,用來測試BundleName,若是BundleName不是咱們指望的,在測試時就會報錯。如今點擊testBundleName方法前面的綠色箭頭,會看到以下所示的菜單:
【鴻蒙學院】鴻蒙IDE迎來重大更新,新特性足以讓你尖叫
點擊Run 'testBundleName()'菜單項開始測試,若是發生錯誤,在下方的Run視圖會輸出以下內容。
【鴻蒙學院】鴻蒙IDE迎來重大更新,新特性足以讓你尖叫

這時就會發現代碼中的錯誤,以便及時修改。若是某我的不當心修改了BundleName,測試是不會經過的。

做者:蒙娜麗寧

想了解更多內容,請訪問51CTO和華爲合做共建的鴻蒙社區:https://harmonyos.51cto.com

相關文章
相關標籤/搜索