JUnit
在Android中使用JUnit測試大致分如下幾個(gè)步驟:
- 在AndroidManifest.xml中增加對(duì)JUnit的支持,并制定測試項(xiàng)目包。
- 在AndroidManifest.xml中<application.../>節(jié)點(diǎn)中增加一個(gè)<uses-library...>節(jié)點(diǎn),name屬性為android.test.runner。
- 在編寫待測試方法后,新建一個(gè)類,繼承AndroidTestCase,在其中編寫測試用例代碼。
- 鼠標(biāo)左鍵在測試用例方法上,RunAs→AndroidJUnitTest。
下面就上面幾個(gè)步驟,詳細(xì)講解一下,新建一個(gè)Android項(xiàng)目,在AndroidManifest.xml中,添加一個(gè)Instrumentation:
指定Instrumentation的name與TargetPackage:
在<application.../>節(jié)點(diǎn)中增加<uses-libraryandroid:name="android.test.runner"/>
完成后AndroidManifest.xml代碼如下:
1<?xmlversion="1.0"encoding="utf-8"?>2<manifestxmlns:android="http://schemas.android.com/apk/res/android"3package="com.example.junittestdemo"4android:versionCode="1"5android:versionName="1.0">67<uses-sdk8android:minSdkVersion="8"9android:targetSdkVersion="17"/>1011<instrumentation12android:name="android.test.InstrumentationTestRunner"13android:targetPackage="com.example.junittestdemo">14</instrumentation>1516<application17android:allowBackup="true"18android:icon="@drawable/ic_launcher"19android:label="@string/app_name"20android:theme="@style/AppTheme">21<uses-libraryandroid:name="android.test.runner"/>2223<activity24android:name="com.example.junittestdemo.MainActivity"25android:label="@string/app_name">26<intent-filter>27<actionandroid:name="android.intent.action.MAIN"/>2829<categoryandroid:name="android.intent.category.LAUNCHER"/>30</intent-filter>31</activity>32</application>3334</manifest>編寫一個(gè)簡單的進(jìn)度百分比計(jì)算方法:
1packagecom.example.service;23publicclassProgressService{4publicProgressService(){56}7publicIntegergetCurrentProgerss(doublecurrent,doublemax){8Integeri=(int)((current/max)*100);9returni;10}11}編寫一個(gè)測試類,這個(gè)類需要繼承AndroidTestCase,針對(duì)百分比方法進(jìn)行測試:
1packagecom.example.junit;23importandroid.test.AndroidTestCase;4importandroid.util.Log;567importcom.example.service.ProgressService;89publicclassProgressServiceJUnitextendsAndroidTestCase{10privatefinalStringTAG="main";1112publicProgressServiceJUnit(){13//TODOAuto-generatedconstructorstub14}1516publicvoidgetCurrentProgerssTest(){17ProgressServiceprogressService=newProgressService();18Integerpro=progressService.getCurrentProgerss(20,70);19Log.i(TAG,pro.toString());20}21}左鍵getCurrentProgerssTest()方法,選中AndroidJUnitTest,如果需要調(diào)試,可以選擇DebugAs下的AndroidJUnitTest:
當(dāng)執(zhí)行成功后,會(huì)顯示綠色,如果是其他顏色,則為出錯(cuò):
可以在LogCat日志中看到測試結(jié)果: