Android系統單元測試方法(9)
發表于:2011-06-30來源:未知作者:領測軟件測試網采編點擊數:
標簽:
如果想在android里面做 單元測試 ,有兩條基本的路子可行。 第一, 就是 java 程序員最為熟悉和常用的JUnit, 但是由于目前android sdk (version 1.1)中只是提供了
如果想在android里面做
單元測試,有兩條基本的路子可行。
第一, 就是
java程序員最為熟悉和常用的JUnit, 但是由于目前android sdk (version 1.1)中只是提供了stubbed methods/classes,沒有具體的實現代碼,所以如果用JUnit的話,我們需要在運行單元測試時,一定要用JDK來運行,利用
java命令來啟動JUnit的某個Runner。如果是用Eclipse的話,可以在Run Configuration里新建一個JUnit。但是一定要記得在Classpath選項卡里將Bootstrap Entries中的Android Library改成JRE,并且添加junit.jar。具體的設置可以參考:http://developer.android.com/guide /appendix/faq/troubleshooting.html#addjunit。而且,更為遺憾的是,這種方法運行的JUnit運行在JDK之上的,而不是android,所以,只能測試一些和android無關的東西,比如業務邏輯,數據封裝,數值計算等等。并不能測試android api。
第二, 采用Instrumentation. Android單元測試的主入口是InstrumentationTestRunner。它相當于JUnit當中TestRunner的作用。你可以將 Instrumentation理解為一種沒有圖形界面的,具有啟動能力的,用于監控其他類(用Target Package聲明)的工具類。任何想成為Instrumentation的類必須繼承android.app.Instrumentation。
下面通過一個實例來看一下如何通過Instrumentation來做單元測試。
Step 1.首先編寫需要測試的activity:
-
import android.app.Activity;
-
import android.os.Bundle;
-
-
public class AndroidUT extends Activity {
-
-
@Override
-
public void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.main);
-
}
-
-
public int add(int a, int b)
-
{
-
return a + b;
-
}
-
}
import android.app.Activity;
import android.os.Bundle;
public class AndroidUT extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public int add(int a, int b)
{
return a + b;
}
}
Step 2.
接下來編寫測試類,其中主要來測試add()方法。我們在當前代碼目錄下,在新建一個文件夾,命名為test,并在里面新建了包com.android.ut.test。然后往里面新增加一個class.具體如下: