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
package net.thinkeye.junitest; /** * 業務類,代碼很簡單 * @author Johnny */ public class PersonService { /** * 取Person的方法 * 因為使用了String的substring方法,當傳入字段為空時即報異常 * @param name */ public void getPerson(String name){ name = name.substring(8); } /** * 添加Person方法 * 可以使用Assert.assertEquals來測試其返回值的正確性 * @param a * @param b * @return */ public int addPerson(int a,int b){ return a+b; } } |
3、測試類,src/net/thinkeye/test/JTest.java 需繼承 android.test.AndroidTestCase 類
package net.thinkeye.test; import junit.framework.Assert; import net.thinkeye.junitest.PersonService; import android.test.AndroidTestCase; /** * 測試類,需繼承android.test.AndroidTestCase類 * @author Johnny * */ public class JTest extends AndroidTestCase{ /** * 測試getPerson方法 * @throws Exception */ public void testGetPerson() throws Exception{ PersonService ps = new PersonService(); ps.getPerson(null); } /** * 測試addPerson方法 * @throws Exception */ public void testAddPerson()throws Exception{ PersonService ps = new PersonService(); int t = ps.addPerson(2, 4); System.out.println(t); Assert.assertEquals(6, t);//junit.framework.Assert的作用判斷t值是否等于6 } } |
4、完成以上的步驟就可以開始測試了,如下圖
當傳入null時報異常
輸入的字符串正確時通過了測試!
addPerson方法的測試
上面就是簡單的測試例子,附上代碼:
posted on 2014-06-30 18:37 順其自然EVO 閱讀(181) 評論(0) 編輯 收藏 所屬分類: android