在android中進行單元測試
在開發過程中,無論是什么語言,如果能夠熟練使用單元測試, 提高的效率那是大大地,當測試或某相關的小姑娘報bug的時候,站在你身邊,用無辜的大眼睛對 你說,“公子,有地方出問題”,正要打開相關的應用程序或者頁面重現那個問題時,你大臂一揮,“XJ,不用那么麻煩,看在下的”,打開單元測試一跑,三下 兩下搞定問題,那些連myeclipse都不知道怎么拼的MM,看到這一幕,能不五體投地嗎?如果公司都是大老爺們,那首先要做的就和老板提意見,然后再 看下文。
android的單元測試很簡單,首先,新建一個android project。然后新建一個android test project,File-->Project-->Android-->Android Test Project。然后會彈出一個對話框“New Android Test Project”,填入工程名,在“an existing Android Project”中選擇要單元測試的工程,其實就和那個東西掛鉤,理解為母體和寄生蟲的關系也未嘗不可。當選擇好Android Project工程之 后,下面的那些包名之類的自然就自動填好了。點“finish”,一個android test project就OK了--如果不是太倒霉的話。
android test project工程下的目錄結構和android project差不多,只是src下的package下多一個test包。接下來就開始創建junit了,像平常添加新類那樣右擊 包,New-->Junit Test Case,接下來就填junit名字,選擇“New Junit3.0 Test”,Junit4.0沒試過,但由于某些原因Junit4不一定能體現出Junit的特性來,一會說,現在不說,伏筆很重要,我的地盤我做 主...在下面吧setUp勾上。“finish”,現在就可以寫測試
代碼,具體的實例代碼如下:
import java.util.ArrayList; import com.helloAndroid.Books; import android.R.xml;
ListView listView; public Junit3() { protected void setUp() throws Exception {
//添加testPreconditions()方法,檢查初始化環境,只執行一次 //assertNotNull(integer); } //添加單元測試 //assertEquals(resourceString,(String)mView.getText()); map.put("line1", "測試Junit"); //listView = (ListView)books.findViewById(com.helloAndroid.R.id.l) //books.setListAdapter(notes); } |
必須繼承這個類ActivityInstrumentationTestCase2,通過泛型把要單元測試的目標類聯系起 來,ActivityInstrumentationTestCase2<Books>,Books就是目標類,setUp() 方法是自動生成,因為剛才在創建的時間把“setUp()”的選項卡勾上了,如果沒勾上的話,就重寫一個,然后寫兩個方法 testPreconditions()和testText(),testText是單元測試的執行類,testPreconditions()不知道具 體干嘛的,千萬切記要把這三個方法都寫出來,否則報出來的錯,你去google都搜不到解決方法。由于必須得有這三個類,而Junit4里是通過 annotation的方式標注測試的行為,android test project中用junit4可能會達不到預期效果,沒測試過,反正在junit里少那三個方法,也是不行的,這是實踐過的。
最簡單的單元測試就這樣了。android的單元測試也是有一個很大的框架,ActivityInstrumentationTestCase2上面也繼承了好多層。
posted on 2012-09-04 10:05 順其自然EVO 閱讀(607) 評論(0) 編輯 收藏 所屬分類: android