android測試有多重要!
我們開發android,用模擬器除錯,真機除錯,手動點選操作APP,發現bug又進行繁瑣反覆的測試,效率有多低,多費勁。有沒有考慮過自己寫單元測試?如何寫?你知道有哪些測試框架嗎?以下內容分享自網路部落格的一些總結:
一,認識單元測試
處於高速迭代開發中的Android專案往往需要除黑盒測試外更加可靠的質量保障,這正是單元測試的用武之地。單元測試周期性對專案進行函式級別的測試,在良好的覆蓋率下,能夠持續維護程式碼邏輯,從而支援專案從容應對快速的版本更新。
單元測試是參與專案開發的工程師在專案程式碼之外建立的白盒測試工程,用於執行專案中的目標函式並驗證其狀態或者結果,其中,單元指的是測試的最小模組,通常指函式。
與Java單元測試相同,Android單元測試也是維護程式碼邏輯的白盒工程,但由於Android執行環境的不同,Android單元測試的環境配置以及實施流程均有所不同。
二,Android單元測試
在Android中,單元測試的本質依舊是驗證函式的功能,測試框架也是JUnit。在Java中,編寫程式碼面對的只有類、物件、函式,編寫單元測試時可以在測試工程中建立一個物件出來然後執行其函式進行測試,而在Android中,編寫程式碼需要面對的是元件、控制元件、生命週期、非同步任務、訊息傳遞等,雖然本質是SDK主動執行了一些例項的函式,但建立一個Activity並不能讓它執行到resume的狀態,因此需要JUnit之外的框架支援。
當前主流的單元測試框架AndroidTest和Robolectric,前者需要執行在Android環境上,後者可以直接執行在JVM上,速度也更快,可以直接由Jenkins週期性執行,無需準備Android環境。因此我們的單元測試基於Robolectric。對於一些測試物件依賴度較高而需要解除依賴的場景,我們可以藉助Mock框架。
三,JUnit4+Mockito單元測試
很多Android開發的同學,不瞭解單元測試。對於不是測試專業出身、又沒技術大牛調教過的程式猿,缺乏單元測試知識,比比皆是。
如果你學會寫Junit單元測試,可以直接對單個Presenter、Service編譯執行,不需要關心是否受到其他類的程式碼or網路環境、伺服器是否正常的影響。執行一下就幾秒鐘,Junit和Mockito的錯誤提示,還讓你快速定位問題。
四,Robolectric測試框架
Robolectric支援單元測試範圍從Activity的跳轉、Activity展示View(包括選單)和Fragment到View的點選觸控以及事件響應,同時Robolectric也能測試Toast和Dialog。對於需要網路請求資料的測試,Robolectric可以模擬網路請求的response。對於一些Robolectric不能測試的物件,比如ConcurrentTask,可以通過自定義Shadow的方式現實測試。
五,測試的重要性和必要性
不僅需要學習,而且你要學習的東西還真不少,你要學習JUnit的使用,你要學習Mokito的使用,Robolectric的使用,依賴注入的概念和使用等等等待。此外,在剛開始的時候,你的確也會遇到很多坑,現有程式碼的坑,Android的坑,Robolectric的坑等等。這個在安卓開發這邊顯得更是如此,因為Android開發環境是公認的最不利用寫單元測試的環境之一。你需要花一些時間去學習如何處理,或者是繞過這些坑。
很多人都能承認、也能理解單元測試在保證程式碼質量,防止bug或儘早發現bug這方面的作用,這可能是大家覺得單元測試最大的作用。然而我覺得,除了這方面的作用,單元測試還能在很大程度上改善程式碼的設計,同時還能節約時間,讓人工作起來更自信、更開心,以及其他的一些好處。
相關文章
- 有關Junit的多執行緒測試執行緒
- 滲透測試安全行業文憑到底有多重要行業
- 軟體測試中的Bug迴歸,到底有多重要?
- 軟體測試真的很重要!——軟體測試的作用
- 測試筆試多選題筆試
- 科技成果鑑定測試有多重要?可出具專業測試報告的軟體測評機構推薦測試報告
- 測試 之Java單元測試、Android單元測試JavaAndroid
- 使用Android系統測試和iOS系統測試,到底有什麼區別?AndroidiOS
- Junit測試Android自動化測試Android
- 效能測試有哪些指標需要測試?指標
- Android單元測試-對Activity的測試Android
- Android單元測試-對View的測試AndroidView
- 軟體效能測試有哪些測試過程?
- 提升軟體測試效率與靈活性:探索Mock測試的重要性Mock
- [android]android自動化測試十四之dumpsys效能測試Android
- 效能測試、負載測試、壓力測試有什麼區別?負載
- Android - 單元測試Android
- android單元測試Android
- Android的Junit測試Android
- [Fuzz]Android模糊測試Android
- [Android] 單元測試Android
- [Android]幀率測試Android
- 4、Android UI測試AndroidUI
- [Traceview]android效能測試ViewAndroid
- 軟體安全測試有哪些方法?在哪裡測試?
- 安卓測試跟ios 測試有什麼區別?安卓iOS
- 軟體測試有哪些內容?在哪裡測試?
- [android]android自動化測試Android
- 軟體安全測試為什麼重要?出具專業測試報告的軟體測試公司推薦測試報告
- Android滲透測試Android滲透測試入門教程大學霸Android
- [android]android自動化測試十之單元測試例項Android
- Android多媒體框架中幾個重要的類Android框架
- java 對測試來說真的不重要嗎Java
- 簡述效能測試的重要概念,不談公式公式
- APP測試中IOS和Android的區別,有哪些注意點?APPiOSAndroid
- Android單元測試與模擬測試詳解Android
- APP測試 - android os6,7 新增特性測試APPAndroid
- 資料庫測試的重要性——永遠不要忘記資料庫測試資料庫