對于Android程序版本說明介紹
Android程序作為谷歌企業(yè)戰(zhàn)略的重要組成部分,最上層是各種應(yīng)用軟件,包括通話程序,短信程序等,應(yīng)用軟件則由各公司自行開發(fā),以java編寫,并且添加junit.jar。
就有了比較成熟的測試框架,但是直到目前***的1.1版本,也沒有詳細(xì)的文檔介紹這個(gè)內(nèi)容,只是簡單的給了一個(gè)Api Demos里的幾個(gè)單元測試代碼。因此,我在這里對此內(nèi)容做一下梳理和總結(jié):
在 Java下做單元測試必然用到JUnit。這里說的JUnit是指從Apache基金會(huì)下載的junit.jar里提供的一系列單元測試功能。這些功能顯然是運(yùn)行在JDK之上的。在Android下已經(jīng)沒有了JDK,自然也無法運(yùn)行JUnit。但是這并不妨礙我們利用JUnit編寫單元測試。
只不過在運(yùn)行單元測試時(shí),一定要用JDK來運(yùn)行,利用java命令來啟動(dòng)JUnit的某個(gè)Runner。如果是用Eclipse的話??梢栽赗un Configuration里新建一個(gè)JUnit。但是一定要記得在Classpath選項(xiàng)卡里將Bootstrap Entries中的Android Library改成JRE,并且添加junit.jar。
很明顯的,這種測試就是正規(guī)的Java單元測試,和Android沒有任何關(guān)系。你無法測試任何關(guān)于Android系統(tǒng)中的API。你寫的Activity,人機(jī)界面等等。所以,如果你想測試僅僅是一些封裝數(shù)據(jù)的對象。
或者是純粹的數(shù)值計(jì)算,還是可以用這種方法的。Android程序里面的junit.framework包是怎么回事?很多人看到這個(gè)包的時(shí)候,***反應(yīng)是Android是不是已經(jīng)完整集成了JUnit。很遺憾這不是事實(shí)。
如果你按照J(rèn)Unit的運(yùn)行方法,卻不像上面那樣改用JDK,就一定會(huì)得到一個(gè)異常:之所以有那么多XXXTestCase主要是為了簡化工作。例如當(dāng)你想對一個(gè)訪問數(shù)據(jù)庫的功能進(jìn)行測試時(shí),首先需要自己啟動(dòng)并初始化數(shù)據(jù)庫。在這里是類似的,如果你想測試一個(gè)Activity,首先要啟動(dòng)它。
而ActivityTestCase就會(huì)自動(dòng)幫你做完這些事情。而 ActivityUnitTestCase會(huì)更注重測試的獨(dú)立性,它會(huì)讓測試與Android程序的聯(lián)系降到***。其余的類可以查看相關(guān)的Javadoc 來按需挑選。要編寫測試,就是找到合適的XXXTestCase作為基類來繼承,并且編寫自己的測試方法。
【編輯推薦】