寫了多年的安卓應(yīng)用程序烹吵,大大小小的項(xiàng)目也開發(fā)了若干個(gè),要做單元測(cè)試的口號(hào)也喊了很多年桨武,可一直沒(méi)有實(shí)踐過(guò)肋拔。相信很多人跟我一樣,心里一直想做卻沒(méi)做起來(lái)呀酸×狗洌總結(jié)了下主要有以下幾個(gè)原因:
1.早期的安卓應(yīng)用程序都是采用MVC模式,基本上Activity里既包括了UI相關(guān)的內(nèi)容性誉,也包括了各種業(yè)務(wù)邏輯的處理跃惫,這樣的Activity我們稱之為god class。這樣會(huì)導(dǎo)致很多業(yè)務(wù)邏輯處理的地方都會(huì)涉及到UI相關(guān)艾栋,而凡是涉及到UI的地方,想要去寫單元測(cè)試幾乎是一場(chǎng)災(zāi)難蛉顽;
2.早期Google沒(méi)有提供比較方便蝗砾、簡(jiǎn)單、易用的單元測(cè)試工具携冤,原來(lái)的單元測(cè)試必須要在安卓環(huán)境上才能運(yùn)行悼粮。這樣對(duì)開發(fā)非常不友好,我寫一個(gè)很簡(jiǎn)單的單元測(cè)試代碼曾棕,運(yùn)行的時(shí)候必須要先打包扣猫,然后再跑在真機(jī)或者模擬器上。如果大家用eclipse開發(fā)過(guò)安卓程序翘地,估計(jì)都體驗(yàn)過(guò)漫長(zhǎng)的打包過(guò)程申尤,動(dòng)不動(dòng)就卡死了癌幕,等個(gè)老半天才能出一個(gè)結(jié)果,說(shuō)多了都是淚昧穿。
3.對(duì)單元測(cè)試的理解不夠深刻勺远。APP開發(fā)出來(lái)后,大家都是直接扔給測(cè)試人員來(lái)進(jìn)行測(cè)試时鸵,心里會(huì)下意識(shí)地覺(jué)得測(cè)試應(yīng)該是測(cè)試人員干的活胶逢,我是干開發(fā)的,不應(yīng)該干測(cè)試的活饰潜。
4.公司老板不重視測(cè)試初坠。有些老板認(rèn)為測(cè)試是浪費(fèi)時(shí)間,特別是APP測(cè)試彭雾,他們會(huì)認(rèn)為APP只要盡快實(shí)現(xiàn)功能碟刺,功能測(cè)試通過(guò)就OK了。(曾經(jīng)呆過(guò)的某公司老板就是這樣冠跷,特別排斥測(cè)試人員南誊,覺(jué)得招聘測(cè)試人員就是浪費(fèi)錢,奇葩的是公司現(xiàn)在做的很大蜜托。)
5.國(guó)內(nèi)大環(huán)境氛圍太差抄囚。大部分時(shí)候,大家都在趕著開發(fā)新功能橄务,趕上線幔托,以至于單元測(cè)試這件事情,通常都會(huì)被忽略蜂挪,甚至從來(lái)沒(méi)考慮過(guò)重挑。而這一點(diǎn)在移動(dòng)開發(fā)上更甚,這樣導(dǎo)致在網(wǎng)上很難找到比較全面的關(guān)于APP單元測(cè)試的文章來(lái)學(xué)習(xí)棠涮,讓想做單元測(cè)試的同學(xué)都不知道從何下手谬哀,因此陷入了一個(gè)惡性循環(huán)。
現(xiàn)在由于工作的原因严肪,需要開始寫單元測(cè)試史煎,加上自己對(duì)單元測(cè)試也很感興趣,研究了不少關(guān)于Android的測(cè)試方案并付諸實(shí)踐驳糯,取得了良好的效果篇梭,特將這些經(jīng)驗(yàn)和想法整理成一系列的文章,希望其他同學(xué)在這方面少走一些彎路酝枢。
系列文章:
Android單元測(cè)試(二):什么是單元測(cè)試
Android單元測(cè)試(三):測(cè)試難點(diǎn)及方案選擇
Android單元測(cè)試(五):JUnit進(jìn)階
Android單元測(cè)試(六):Mockito學(xué)習(xí)