Android單元測試(一):前言

雲之崖發表於2017-07-31

寫了多年的安卓應用程式,大大小小的專案也開發了若干個,要做單元測試的口號也喊了很多年,可一直沒有實踐過。相信很多人跟我一樣,心裡一直想做卻沒做起來。總結了下主要有以下幾個原因:

1.早期的安卓應用程式都是採用MVC模式,基本上Activity裡既包括了UI相關的內容,也包括了各種業務邏輯的處理,這樣的Activity我們稱之為god class。這樣會導致很多業務邏輯處理的地方都會涉及到UI相關,而凡是涉及到UI的地方,想要去寫單元測試幾乎是一場災難;

2.早期Google沒有提供比較方便、簡單、易用的單元測試工具,原來的單元測試必須要在安卓環境上才能執行。這樣對開發非常不友好,我寫一個很簡單的單元測試程式碼,執行的時候必須要先打包,然後再跑在真機或者模擬器上。如果大家用eclipse開發過安卓程式,估計都體驗過漫長的打包過程,動不動就卡死了,等個老半天才能出一個結果,說多了都是淚。

3.對單元測試的理解不夠深刻。APP開發出來後,大家都是直接扔給測試人員來進行測試,心裡會下意識地覺得測試應該是測試人員乾的活,我是幹開發的,不應該幹測試的活。

4.公司老闆不重視測試。有些老闆認為測試是浪費時間,特別是APP測試,他們會認為APP只要儘快實現功能,功能測試通過就OK了。(曾經呆過的某公司老闆就是這樣,特別排斥測試人員,覺得招聘測試人員就是浪費錢,奇葩的是公司現在做的很大。)

5.國內大環境氛圍太差。大部分時候,大家都在趕著開發新功能,趕上線,以至於單元測試這件事情,通常都會被忽略,甚至從來沒考慮過。而這一點在移動開發上更甚,這樣導致在網上很難找到比較全面的關於APP單元測試的文章來學習,讓想做單元測試的同學都不知道從何下手,因此陷入了一個惡性迴圈。

現在由於工作的原因,需要開始寫單元測試,加上自己對單元測試也很感興趣,研究了不少關於Android的測試方案並付諸實踐,取得了良好的效果,特將這些經驗和想法整理成一系列的文章,希望其他同學在這方面少走一些彎路。

系列文章:

Android單元測試(一):前言

Android單元測試(二):什麼是單元測試

Android單元測試(三):測試難點及方案選擇

Android單元測試(四):JUnit介紹

Android單元測試(五):JUnit進階

Android單元測試(六):Mockito學習

Android單元測試(七):Robolectric介紹

Android單元測試(八):怎樣測試非同步程式碼


相關文章