在android中進行單元測試

發表于:2013-05-24來源:博客園作者:qileilove點擊數: 標簽:單元測試
在開發過程中,無論是什么語言,如果能夠熟練使用單元測試, 提高的效率那是大大地,當測試或某相關的小姑娘報bug的時候,站在你身邊,用無辜的大眼睛對 你說,“公子,有地方出問題”,

  在開發過程中,無論是什么語言,如果能夠熟練使用單元測試, 提高的效率那是大大地,當測試或某相關的小姑娘報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 java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.helloAndroid.Books;
import com.helloAndroid.HelloAndroid;
import com.helloAndroid.R;

import android.R.xml;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.ListView;
import android.widget.SimpleAdapter;


public class Junit3 extends ActivityInstrumentationTestCase2<Books> {

ListView listView;
Books books;

public Junit3() {
super("com.helloAndroid.HelloAndroid" ,Books.class);
// TODO Auto-generated constructor stub
}

protected void setUp() throws Exception {
super.setUp();
books = this.getActivity();


}

//添加testPreconditions()方法,檢查初始化環境,只執行一次
public void testPreconditions() {

      //assertNotNull(integer);

}

//添加單元測試
public void testText() {

      //assertEquals(resourceString,(String)mView.getText());
List<Map<String, Object>> resourceName = new ArrayList<Map<String,Object>>();
Map<String ,Object> map = new HashMap<String, Object>();

map.put("line1", "測試Junit");
map.put("img", R.drawable.weikexue);
resourceName.add(map);

//listView = (ListView)books.findViewById(com.helloAndroid.R.id.l)
SimpleAdapter notes = new SimpleAdapter(
books,
resourceName,
R.layout.rows,
new String[]{"line1" ,"img"},
new int[]{R.id.text1,  R.id.img});

//books.setListAdapter(notes);
    }

}

  必須繼承這個類ActivityInstrumentationTestCase2,通過泛型把要單元測試的目標類聯系起 來,ActivityInstrumentationTestCase2,Books就是目標類,setUp() 方法是自動生成,因為剛才在創建的時間把“setUp()”的選項卡勾上了,如果沒勾上的話,就重寫一個,然后寫兩個方法 testPreconditions()和testText(),testText是單元測試的執行類,testPreconditions()不知道具 體干嘛的,千萬切記要把這三個方法都寫出來,否則報出來的錯,你去google都搜不到解決方法。由于必須得有這三個類,而Junit4里是通過 annotation的方式標注測試的行為,android test project中用junit4可能會達不到預期效果,沒測試過,反正在junit里少那三個方法,也是不行的,這是實踐過的。

  最簡單的單元測試就這樣了。android的單元測試也是有一個很大的框架,ActivityInstrumentationTestCase2上面也繼承了好多層。

原文轉自:http://www.blogjava.net/qileilove/archive/2012/09/04/386931.html

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97