qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          Android學(xué)習(xí)筆記之如何對應(yīng)用進(jìn)行單元測試

          開發(fā)環(huán)境:
            Win XP + eclipse-jee-helios(版本號3.6) + ADT(版本10.0.1) + Android SDK(版本10);
            模擬器及真機測試環(huán)境:Android2.2
            在Android軟件的開發(fā)過程中,可以使用Junit測試框架。在Junit中可以得到組件,可以模擬發(fā)送事件和測試程序處理的正確性。
            第一步:在新建項目中,創(chuàng)建待測試的業(yè)務(wù)類,在cn.hao.service包中,代碼如下:
          package cn.hao.service;
          //業(yè)務(wù)類,待測試的兩個方法
          public class PersonaService {
          public void save(String username){
          String sub = username.substring(6);
          }
          public int add(int a,int b){
          return a+b;
          }
          }
            說明:對于save()方法,如果參數(shù)為null,那么這個方法會發(fā)生錯誤;對add()方法,我們測試相加返回的相加結(jié)果是否正確。
            第二步:為應(yīng)用引進(jìn)單元測試環(huán)境
            在AndroidManifest.xml中加入如下代碼:
            <uses-library android:name="android.test.runner"/>
            <instrumentation android:name="android.test.instrumentationTestRunner"
            android:targetPackage="cn.hao.JunitTest" android:label="Test for My App" />
            引入的位置如下:
          <?xml version="1.0" encoding="utf-8"?>
          <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="cn.hao.JunitTest"
          android:versionCode="1"
          android:versionName="1.0">
          <uses-sdk android:minSdkVersion="8" />
          <application android:icon="@drawable/icon" android:label="@string/app_name">
          <activity android:name="cn.hao.test.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>
          <instrumentation android:name="android.test.instrumentationTestRunner"
          android:targetPackage="cn.hao.JunitTest" android:label="App Test"
          />
          </manifest>
            說明:在項目中使用單元測試,就是檢查程序及處理結(jié)果的正確性。
           第三步:新建一個類,測試業(yè)務(wù)類,代碼如下:
          package cn.hao.junit;
          import junit.framework.Assert;
          import cn.hao.service.PersonaService;
          import android.test.AndroidTestCase;
          public class PersonServiceTest extends AndroidTestCase {
          public void testSave() throws Exception {
          PersonaService service = new PersonaService();//new出測試對象
          service.save(null);
          }
          public void testAdd() throws Exception {
          PersonaService service = new PersonaService();
          int actual = service.add(1, 2);
          Assert.assertEquals(3, actual);
          }
          }
           
           注意:該類需繼承單元測試框架父類android.test.AndroidTestCase類,測試方法最好是拋出異常給測試框架。方法Assert.assertEquals(3, actual)中參數(shù)3是期望(理論上)返回的果,actual是實際上返回的結(jié)果。
            第四步:運行測試類
            在大綱OutLine視圖中,右擊測試方法->Run As->Android Junit Test,會將項目自動部署到模擬器上,測試的結(jié)果會以顏色的形式顯示,綠色表示方法正確,否則該方法不正確,Eclipse會給出詳細(xì)的說明,根據(jù)幫助文檔可以查看相應(yīng)的錯誤信息。
            如測試上述testSave()方法時,會給出如下提示:
            當(dāng)然,save()從第六位開始取子字符串,但是該方法現(xiàn)在的參數(shù)為null,會發(fā)生空指針異常。

          posted on 2014-09-19 09:55 順其自然EVO 閱讀(291) 評論(0)  編輯  收藏 所屬分類: 測試學(xué)習(xí)專欄

          <2014年9月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 井冈山市| 商丘市| 五常市| 英山县| 尤溪县| 扎赉特旗| 曲阜市| 和龙市| 大邑县| 毕节市| 葵青区| 凤凰县| 田阳县| 九寨沟县| 特克斯县| 库伦旗| 庄河市| 沙河市| 邢台市| 雷山县| 宁明县| 乌拉特后旗| 普安县| 德化县| 沙雅县| 都兰县| 自贡市| 黑山县| 上林县| 鄂伦春自治旗| 突泉县| 鹤壁市| 鲁甸县| 股票| 五河县| 资中县| 阆中市| 长武县| 泾川县| 峨山| 太原市|