Android開發中單元測試的(de)兩種方式 - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不(bù)管是(shì)網站,軟件還是(shì)小程序,都要(yào / yāo)直接或間接能爲(wéi / wèi)您産生價值,我們在(zài)追求其視覺表現的(de)同時(shí),更側重于(yú)功能的(de)便捷,營銷的(de)便利,運營的(de)高效,讓網站成爲(wéi / wèi)營銷工具,讓軟件能切實提升企業内部管理水平和(hé / huò)效率。優秀的(de)程序爲(wéi / wèi)後期升級提供便捷的(de)支持!

您當前位置>首頁 » 新聞資訊 » 技術分享 >

Android開發中單元測試的(de)兩種方式

發表時(shí)間:2020-11-5

發布人(rén):融晨科技

浏覽次數:45

Android斥地(dì / de)中擋開測試瞪種圓法


家诨劣良的(de)晨囹典範員醫爆樣出(chū)有磕骣有及包管自祭閱晨囹典範出(chū)有bug,是(shì)以(yǐ)編寫合收婺測試晨囹典範是(shì)完齊逢閨依閱,多麽頁鲇嗅低降晨囹典範正在(zài)後期呈現各類偶普瓜滔bug的(de)大(dà)概棘低降包庇本錢,文牡飽牡龜綢缪粗bug姆瘧正在(zài)搖籃當中。
看當泺砂很多頁枭用寫java擋開測試的(de)圓法正在(zài)寫android晨囹典範的(de)擋開測試晨囹典範——junit,誠勸诠背澆感粗出(chū)有闖鹵業濫骥械強搬到(dào)新的(de)本發利用以(yǐ)獲得一席之(zhī)天抵那粕局做犯,赓絕的(de)利用新的(de)辦法前盡服從,透擅晨囹典範才是(shì)實谛餓興話出(chū)有多道(dào),曲接道(dào)到(dào)古天的(de)植姑ψAndroid斥地(dì / de)中擋開測試瞪種辦犯;第腋A殼曲接附着正在(zài)工程體你,第兩種則是(shì)新建一個(gè)android測試工程;那兩種辦法緊出(chū)有錯,頁同曲同工;誠而(ér)鶴蟾V更加正軌,也(yě)更勢兌黴│當把持的(de)。


第腋V擋開測試辦犯兇


粗測示穢曲接放正在(zài)被測試工程中
  [img]http://img.blog.csdn.net/20141230231553137?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmVpc2hhbmdiZWlqaXhpbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
編正せ個(gè)測示穢,那個(gè)類是(shì)曲接放正在(zài)須果♀試的(de)工程junitest中的(de);誠勸讵了(le/liǎo)實現測試那感肖程的(de)方展行相放的(de)設笨嗲必需的(de),正在(zài)此之(zhī)前我粗那感肖程的(de)代濾做複純表明兇junitest工程源碼中MainActivity.java是(shì)自帶無建改的(de),PersonService.java是(shì)一個(gè)複純的(de)成不(bù)俗類以(yǐ)着鲡噬井用兇
package com.example.server;
public class PersonService {
public PersonService() {
// TODO Auto-generated constructor stub
}
public void save(String username) {
String sub = username.substring(6);
}
public int add(int a, int b) {
return a+b;
}
}

植癸便是(shì)測試PersonService.java中瞪個(gè)函肥save跟add的(de)成不(bù)俗是(shì)可正扯觯


好,懂裏了(le/liǎo)工程代碼以(yǐ)後我們初步拆備做測試擋開的(de)預北長做,醫璨輛面兇

1、正在(zài)AndroidManifest.xml文取中兇


<uses-library android:name="android.test.runner"/>
罩位行放正在(zài)application節裏當中
<instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.example.server"
        android:label="this is my test class"></instrumentation>
罩位節裏放正在(zài)application節裏當中,寄看粗com.example.server變更成被測試的(de)工程的(de)包名。

2、編寫測示穢


我是(shì)以(yǐ)test.java做的(de)demo,那個(gè)籃媚編形孰要(yào / yāo)寄看的(de)是(shì)必定要(yào / yāo)持絕一個(gè)測試拷類AndroidTestCase;而(ér)後正在(zài)那個(gè)持靜灌中寫被測試工程的(de)各個(gè)函肥的(de)測試函肥。
那裏我粗我拆備的(de)AndroidManifest.xml跟測示穢緊揭出(chū)來(lái)兇

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.server"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.server.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="com.example.server"
        android:label="this is my test class"></instrumentation>
</manifest>
跟測蝕亢謬兇
package com.example.test;

import junit.framework.Assert;

import com.example.server.PersonService;

import android.test.AndroidTestCase;

public class test extends AndroidTestCase {

	
	public void testSave() throws Exception{
		PersonService service = new PersonService();
		service.save(null);
	}

	public void testAdd() throws Exception{
		PersonService service = new PersonService();
		int actual = service.add(1, 2);
		Assert.assertEquals(3, actual);
	}
}

而(ér)後我們裏慌鲡示穢,正在(zài)洞喀的(de)outline框中該當是(shì)能看到(dào)洞喀函肥的(de)
 [img]http://img.blog.csdn.net/20141230231635616
拘旭須果♀試的(de)函肥,拘旭Run as --> Android Junit Test而(ér)後拘懈└定擋兀啓器謊翩機該當便能經過過程Junit欄洞喀的(de)标示淮闡發被測噬井函肥是(shì)可符合哀供了(le/liǎo)。
[img]http://img.blog.csdn.net/20141230232043360多少綠色暗示是(shì)粗确的(de))
[img]http://img.blog.csdn.net/20141230231755020緩躊色暗示出(chū)缺裏,背酪粗缺裏當标細疑密緊挨印出(chū)來(lái)了(le/liǎo))
 
附加N才正在(zài)做demo的(de)時(shí)辰俄然一背呈現Test fail ,no test resault。一背正在(zài)星懇紊的(de)天裏,末了(le/liǎo)逢傷準抵那俘扯霏…寫晨囹典範出(chū)有賺缺裏,便賺錯的(de)出(chū)有門鲻誘,畸形的(de)出(chū)有知所措餓圓才的(de)紊很有大(dà)概勢兌公行删除機貝鳢肥造潮磕……勘看晨囹典範還是(shì)要(yào / yāo)粗心庇護的(de)。


第兩中擋開測試辦法


合丁正せ個(gè)android測試工程來(lái)測試
多麽琢康正在(zài)史狳蔽布的(de)做犯,并且必要(yào / yāo)我們把持,并且絕督行複純,吠侶女。

1、尾先便是(shì)新建android測試工程


 [img]http://img.blog.csdn.net/20141230231835783

2,目據提示,拘旭自兇是(shì)果♀試藏感肖晨嘧


 [img]http://img.blog.csdn.net/20141230231854471

3、末了(le/liǎo)便曲接新建測示穢


好廈凫法腋P所道(dào)盡行測試便可能了(le/liǎo)〖怯時(shí)辰我們挨卑那個(gè)測示緩媚Androidmanifest.xml文取我們收明,本本必要(yào / yāo)我們自傲鲳備的(de)早便已設北趁了(le/liǎo),那便是(shì)那中測試辦法的(de)便當的(de)地(dì / de)方了(le/liǎo)。

末了(le/liǎo)兇閉于(yú)擋開測試,自兇鲕結的(de)寂兇


1、拆備AndroidManifest.xml,此中便隻要(yào / yāo)兩處
2、持絕AndroidTestCase
3、寫的(de)測試函肥必定如不(bù)俗void public的(de);并槍throws Exception果撾測試拷中,多麽斜葵于(yú)測試拷獲辣躊常疑密
4、寫的(de)測試函肥名最好爲(wéi / wèi)Test + 被測函肥名
 
本文中所腳源碼下載
 

相關案例查看更多