Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android單元測試Junit (一)

Android單元測試Junit (一)

編輯:關於Android編程

配置單元測試環境,打開AndroidManifest.xml,具體代碼如下所示:     <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.milan.junit"     android:versionCode="1"     android:versionName="1.0" >     <uses-sdk         android:minSdkVersion="16"         android:targetSdkVersion="19" />     <application         android:allowBackup="true"         android:icon="@drawable/ic_launcher"         android:label="@string/app_name"         android:theme="@style/AppTheme" >         <activity             android:name="com.milan.junit.MainActivity"             android:label="@string/app_name" >             <intent-filter>                 <action android:name="android.intent.action.MAIN" />                 <category android:name="android.intent.category.LAUNCHER" />             </intent-filter>         </activity>         <!--使用單元測試庫-->         <uses-library android:name="android.test.runner"/>     </application>     <!-- 聲明Android框架和目標測試包-->     <instrumentation         android:name="android.test.InstrumentationTestRunner"         android:targetPackage="com.milan.junit" /> </manifest>   說明:         1、<uses-library android:name="android.test.runner"/> 這句,放在application內部。         2、android:targetPackage 這個屬性,一般為應用程序的包名,必須和xml中manifest節點的package同名。   3、創建一個包com.milan.service,這個包下面再創建一個類 Person,用於測試的時候調用。   package com.milan.service; public class Person {     public int getAge(String age){         return new Integer(age);     } }   4、在com.milan.junit包下面,建一個PersonTest類,代碼如下:     package com.milan.junit; import com.milan.service.Person; import android.test.AndroidTestCase; public class PersonTest extends AndroidTestCase {     ///用例1,傳入非數字     public void test01(){         Person person = new Person();         person.getAge("milan");     }     //用例2,傳入數字     public void test02(){         Person person = new Person();         person.getAge("1");     } }    5、選中PersonTest.java,右鍵選擇Run As 選擇Android Junit Test 運行單元測試,如圖:       從上圖可以看到,test01的測試結果為失敗。失敗原因為:java.lang.NumberFormatException: Invalid int: "milan",   test02的測試結果為通過。   如果沒有Junit運行結果,可以在eclips的Window菜單下,選擇Show View--Other--Java--Junit 中打開。   6、運行單個測試用例   eclips的Window菜單下,選擇Show View--Other--General--Outline打開大綱視圖,右鍵測試用例,即可運行單個測試用例。如圖:       同理,如果需要執行整個項目的測試用例,可選中整個項目,用Android Junit Test運行即可。   7、斷言   當我們獲得程序的運行結果,我們希望Junit能夠自動判斷 將實際結果和期望結果是否一致。這個時候我們就可以用到Junit自帶的斷言。   修改PersonTest類,為以下代碼:   package com.milan.junit; import com.milan.service.Person; import android.test.AndroidTestCase; public class PersonTest extends AndroidTestCase {     ///用例1,傳入非數字     public void test01(){         Person person = new Person();         int i= person.getAge("milan");         assertEquals(1, i);     }     //用例2,傳入數字,斷言有message     public void test02(){         Person person = new Person();         int i= person.getAge("1");         assertEquals("傳入數字",2,i);     }     //用例2,傳入數字,斷言無message     public void test03(){         Person person = new Person();         int i= person.getAge("1");         assertEquals(1,i);     } }             如果傳入了message,一旦用例不通過,會在右邊的錯誤詳細裡,列出message。   8、其他斷言   JUnit提供豐富的斷言,來滿足我們不同的比對需求。按住Ctrl鍵,點擊代碼中的assertEquals,可以看到Assert類裡面多支持的斷言函數的參數類型:       大家有空可以多試試。這裡就不一一講解了。   其他信息   如出現Test run failed:Unable to find instrumentation target package錯誤   是因為 android:targetPackage="com.milan.junit" 必須和   <manifest xmlns:android="http://schemas.android.com/apk/res/android"       package="com.milan.junit" package相同的包名
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved