junit實現android單元測試

編寫android業務代碼的時候,我們需要測試其正確性,那就用進行各種測試,很多時候,我們都是用的 System.out.println("XXXXX") 來進行驗證,但有時候,我們肉眼也不一定就能判斷的準確,所以可以考慮用下junit。

JUnit是個自動化單元測試工具,能夠根據你需要測試的類及其接口自動生成該類的單元測試案例,你只要根據你的需要,就輸入必要的測試數據就行了,系統運行後自動判斷運行是否成功。

下面我來介紹下如何使用JUnit來測試android項目。

由於android系統已經集成了JUnit框架,所以我們無需導入JUnit的jar包。

1、在AndroidManifest.xml文件中聲明使用JUnit測試的包名 及加載JUnit類庫代碼,如下

如上圖,<uses-library>標籤 作用是指定該應用程序必須鏈接的共享類庫。這個元素告訴系統該應用程序包的類裝載器中所包含的類庫代碼。

<instrumentation> 可以理解爲一種沒有圖形界面的,具有啓動能力的,用於監控其他類(用Target Package聲明)的工具類。任何想成爲Instrumentation的類必須繼承android.app.Instrumentation。

我們需要測試的就是項目 net.thinkeye.junitest 包下的類。

 

2、寫好的業務類:src/net/thinkeye/junitest/PersonService.java

  1. package net.thinkeye.junitest; 
  2.  
  3. /** 
  4.  * 業務類,代碼很簡單 
  5.  * @author Johnny 
  6.  */ 
  7. public class PersonService { 
  8.      
  9.     /** 
  10.      * 取Person的方法 
  11.      * 因爲使用了String的substring方法,當傳入字段爲空時即報異常 
  12.      * @param name 
  13.      */ 
  14.     public void getPerson(String name){ 
  15.         name = name.substring(8); 
  16.     } 
  17.      
  18.     /** 
  19.      * 添加Person方法 
  20.      * 可以使用Assert.assertEquals來測試其返回值的正確性 
  21.      * @param a 
  22.      * @param b 
  23.      * @return 
  24.      */ 
  25.     public int addPerson(int a,int b){ 
  26.         return a+b; 
  27.     } 
  28.  

3、測試類,src/net/thinkeye/test/JTest.java 需繼承 android.test.AndroidTestCase 類

  1. package net.thinkeye.test; 
  2.  
  3. import junit.framework.Assert; 
  4.  
  5. import net.thinkeye.junitest.PersonService; 
  6. import android.test.AndroidTestCase; 
  7.  
  8. /** 
  9.  * 測試類,需繼承android.test.AndroidTestCase類 
  10.  * @author Johnny 
  11.  * 
  12.  */ 
  13. public class JTest extends AndroidTestCase{ 
  14.     /** 
  15.      * 測試getPerson方法 
  16.      * @throws Exception 
  17.      */ 
  18.     public void testGetPerson() throws Exception{ 
  19.         PersonService ps = new PersonService(); 
  20.         ps.getPerson(null); 
  21.     } 
  22.      
  23.     /** 
  24.      * 測試addPerson方法 
  25.      * @throws Exception 
  26.      */ 
  27.     public void testAddPerson()throws Exception{ 
  28.         PersonService ps = new PersonService(); 
  29.         int t = ps.addPerson(24); 
  30.         System.out.println(t); 
  31.         Assert.assertEquals(6, t);//junit.framework.Assert的作用判斷t值是否等於6 
  32.     } 

4、完成以上的步驟就可以開始測試了,如下圖

 

 

 

當傳入null時報異常

 

 

 

 

輸入的字符串正確時通過了測試!

 

 

addPerson方法的測試

 

 

 

上面就是簡單的測試例子,附上代碼:

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章