国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android應(yīng)用開發(fā)中單元測(cè)試分析

2020-04-11 11:08:54
字體:
供稿:網(wǎng)友

本文主要和大家分享如何在Android應(yīng)用開發(fā)過程中如何進(jìn)行單元測(cè)試,個(gè)人在做項(xiàng)目的過程中,覺得單元測(cè)試很有必要,以保證我們編寫程序的正確性。下面我們先大概了解下單元測(cè)試,以及單元測(cè)試的作用。
       單元測(cè)試(又稱為模塊測(cè)試)是針對(duì)程序模塊(軟件設(shè)計(jì)的最小單位)來進(jìn)行正確性檢驗(yàn)的測(cè)試工作。程序單元是應(yīng)用的最小可測(cè)試部件。在過程化編程中,一個(gè)單元就是單個(gè)程序、函數(shù)、過程等;對(duì)于面向?qū)ο缶幊蹋钚卧褪欠椒ǎɑ悾ǔ悾⒊橄箢悺⒒蛘吲缮悾ㄗ宇悾┲械姆椒ā卧獪y(cè)試是由程序員自己來完成,最終受益的也是程序員自己。可以這么說,程序員有責(zé)任編寫功能代碼,同時(shí)也就有責(zé)任為自己的代碼編寫單元測(cè)試。執(zhí)行單元測(cè)試,就是為了證明這段代碼的行為和我們期望的一致。
       其實(shí)我們每天都在做單元測(cè)試。你寫了一個(gè)函數(shù),除了極簡(jiǎn)單的外,總是要執(zhí)行一下,看看功能是否正常,有時(shí)還要想辦法輸出些數(shù)據(jù),如彈出信息窗口什么的,這,也是單元測(cè)試,把這種單元測(cè)試稱為臨時(shí)單元測(cè)試。只進(jìn)行了臨時(shí)單元測(cè)試的軟件,針對(duì)代碼的測(cè)試很不完整,代碼覆蓋率要超過70%都很困難,未覆蓋的代碼可能遺留大量的細(xì)小的錯(cuò)誤,這些錯(cuò)誤還會(huì)互相影響,當(dāng)BUG暴露出來的時(shí)候難于調(diào)試,大幅度提高后期測(cè)試和維護(hù)成本,也降低了開發(fā)商的競(jìng)爭(zhēng)力。可以說,進(jìn)行充分的單元測(cè)試,是提高軟件質(zhì)量,降低開發(fā)成本的必由之路。
  對(duì)于程序員來說,如果養(yǎng)成了對(duì)自己寫的代碼進(jìn)行單元測(cè)試的習(xí)慣,不但可以寫出高質(zhì)量的代碼,而且還能提高編程水平。
  要進(jìn)行充分的單元測(cè)試,應(yīng)專門編寫測(cè)試代碼,并與產(chǎn)品代碼隔離。我認(rèn)為,比較簡(jiǎn)單的辦法是為產(chǎn)品工程建立對(duì)應(yīng)的測(cè)試工程,為每個(gè)類建立對(duì)應(yīng)的測(cè)試類,為每個(gè)函數(shù)(很簡(jiǎn)單的除外)建立測(cè)試函數(shù)。
在Android應(yīng)用開發(fā)中有兩種方式可以進(jìn)行單元測(cè)試,下面分別展示這兩種單元測(cè)試的方法:

單元測(cè)試方式一[基于應(yīng)用的工程上進(jìn)行單元測(cè)試]

根據(jù)上面的程序代碼結(jié)構(gòu)圖,例如我們要測(cè)試包 com.andyidea.demo 包中的 JUnitService.java 中的某個(gè)方法的正確性。例如該對(duì)象中有個(gè) add方法,計(jì)算兩個(gè)整型數(shù)據(jù)的和

package com.andyidea.demo;  public class JUnitService {      public int add(int a, int b){     return a+b;   }  } 

然后我們?cè)贛yJnuitTest.java中編寫單元測(cè)試代碼,[注意:該測(cè)試類一定要繼承 AndroidTestCase類] 以驗(yàn)證程序結(jié)果是否是我們所期望的一致

package com.andyidea.jnuit;  import junit.framework.Assert; import android.test.AndroidTestCase;  import com.andyidea.demo.JUnitService;  public class MyJnuitTest extends AndroidTestCase {      public void testAdd() throws Exception{     JUnitService js = new JUnitService();     int sum = js.add(1, 2);          Assert.assertEquals(3, sum);   }  } 

同時(shí)我們還需要在 Manifest.xml 清單配置文件中配置下:以紅色標(biāo)志出來需要配置的地方。

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"   package="com.andyidea.demo"   android:versionCode="1"   android:versionName="1.0" >     <span style="color:#ff0000;"> <!-- 代表把單元測(cè)試框架中的一些依賴庫(kù)引入進(jìn)來 -->   <uses-sdk android:minSdkVersion="8" /></span>    <application     android:icon="@drawable/ic_launcher"     android:label="@string/app_name" >     <uses-library android:name="android.test.runner" />     <activity       android:name="com.andyidea.demo.JUnitTestDemoActivity"       android:label="@string/app_name" >       <intent-filter>         <action android:name="android.intent.action.MAIN" />          <category android:name="android.intent.category.LAUNCHER" />       </intent-filter>     </activity>   </application>    <span style="color:#ff0000;">  <!-- 代表配置單元測(cè)試框架的啟動(dòng)裝置,啟動(dòng)裝置有好幾個(gè)類,可以選擇,一般情況下我們使用上面這個(gè)。      targetPackage與上面的package相同,代表單元測(cè)試框架和當(dāng)前應(yīng)用是處于同一個(gè)進(jìn)程中 -->   <instrumentation     android:name="android.test.InstrumentationTestRunner"     android:label="Test for my app"     android:targetPackage="com.andyidea.demo"/></span> </manifest> 

最后,打開eclipse中的outline窗口,其中會(huì)顯示單元測(cè)試類的所有的方法然后想要測(cè)試哪個(gè)方法,則在哪個(gè)測(cè)試方法上右鍵鼠標(biāo),選擇Run As,然后再選擇Android JUnit Test即可,如果是正常的,則會(huì)如下:

如果有異常或者錯(cuò)誤,則會(huì)出現(xiàn)如下情況:

單元測(cè)試方式二:
其實(shí)這種方式更加簡(jiǎn)單,這種方式是單獨(dú)創(chuàng)建一個(gè)單元測(cè)試的工程來進(jìn)行測(cè)試。即創(chuàng)建一個(gè) Android Test Project ,然后選擇需要單元測(cè)試的項(xiàng)目就OK了,通過這種方式進(jìn)行單元測(cè)試的話就不用進(jìn)行上面的配置,其實(shí)創(chuàng)建這種工程的時(shí)候,默認(rèn)已經(jīng)幫我們配置好了,如何進(jìn)行測(cè)試和上面的方式一樣,在這里就不詳細(xì)講解了。

以上就是針對(duì)Android應(yīng)用開發(fā)中單元測(cè)試進(jìn)行的詳細(xì)介紹,希望對(duì)大家的學(xué)習(xí)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 杭锦后旗| 怀宁县| 娱乐| 秦皇岛市| 饶河县| 武邑县| 景泰县| 康马县| 岚皋县| 二连浩特市| 中宁县| 五莲县| 玛纳斯县| 兰考县| 隆回县| 三台县| 水城县| 海南省| 长顺县| 宜都市| 成安县| SHOW| 峨眉山市| 睢宁县| 蒲城县| 上饶市| 蓝田县| 宿松县| 湛江市| 江口县| 富源县| 马公市| 樟树市| 达州市| 兴海县| 潞西市| 鄢陵县| 石景山区| 文昌市| 凤山县| 黄浦区|