qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          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

          <2014年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 遵化市| 吉木萨尔县| 宾阳县| 开远市| 库车县| 耿马| 翁源县| 崇礼县| 呼图壁县| 南和县| 天长市| 肥城市| 凤山县| 利川市| 昭觉县| 普兰县| 陆丰市| 许昌县| 临安市| 东丰县| 灵台县| 高陵县| 海丰县| 云和县| 岐山县| 正阳县| 高邑县| 丰都县| 襄汾县| 阆中市| 常州市| 布拖县| 延庆县| 新郑市| 和静县| 巨鹿县| 林口县| 洛宁县| 渑池县| 谷城县| 龙门县|