一.單元測試簡介
在android的開發的過程中,經常需要對業務方面的代碼進行測試,熟悉java的人都知道junit, 在android中google提供了基於junit爲android進行了優化得自動化框架junit,在Junit中可以得到組件,可以模擬發送事件和檢測程序處理的正確性,在java中使用junit編寫測試用例,我們需要繼承TestCase,在android中需要繼承AndroidTestCase。
二.環境搭建
1. 業務類
業務類中寫了add函數,Junit來測試add函數的正確性。
<span style="font-family:Times New Roman;">package com.mxy.service;
public class CalcService {
public int add(int a,int b) {
System.out.println("執行了加方法");
return a + b;
}
}</span>
2. 測試類
測試類繼承了AndroidTestCase 類,寫了testAdd函數,注意測試類中函數必須以test開頭,返回值爲void,類型爲public 。
<span style="font-family:Times New Roman;">package com.mxy.test;
import com.mxy.service.CalcService;
import android.test.AndroidTestCase;
public class CalcServiceTest extends AndroidTestCase {
public void testAdd() {
CalcService cal = new CalcService();
int result = cal.add(5,3);
System.out.println(result);
assertEquals(8, result);
}
}</span>
3. 配置AndroidManifeset.xml
在<applicetion />標籤中添加:
<span style="font-family:Times New Roman;"><uses-library android:name="android.test.runner"/></span>
在<mainfest />標籤中添加:
<span style="font-family:Times New Roman;"><instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.uicc.cloudservice" android:label="Test for my app"/></span>
android:targetPackage的包名必須和manifest 標籤的package一致。
三.問題及解決方案
1. 錯誤:Warning: No instrumentation runner found for the launch, using android.test.InstrumentationTestRunner.
原因:模擬器不能記住Androidmanifest的配置,在運行時需要重新設置運行配置。
解決步驟如下:
(1).在工程或者測試類名字上點擊右鍵,選擇properties
(2).在Run/Debug setting中選擇要運行的工程名字,點擊右邊的Edit,進入Edit launch configuration properties界面,在Test選項卡中的instrumentation runner後面的下拉列表中選擇android.test.InstrumentationTestRunner 。
(3).重新運行該測試單元即可。
2. android:targetPackage的包名必須和manifest 標籤的package一致。否則會出現找不到包的錯誤。
四.參考網址
1. http://blog.csdn.net/mengxiangyue/article/details/20568433 環境搭建
2. http://blog.csdn.net/you12345678901234567/article/details/7632807 錯誤解決方案