怎么使用JMUnit

本篇內(nèi)容介紹了“怎么使用JMUnit”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

10余年的晉源網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整晉源建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“晉源網(wǎng)站設(shè)計”,“晉源網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

使用JMUnit

a) 建立JMUnit

在下載JMUnit后,請確保相應(yīng)的兩個JMUnit .jar文件(JMUnit4CLDC10.jar和JMUnit4CLDC11.jar)可用于classpath中。注意,這個參數(shù)既針對你的Java ME編譯器也針對運(yùn)行時刻環(huán)境或IDE。當(dāng)前,JMUnit的發(fā)行版本是1.0.2。

b) JMUnit測試用例

JMUnit提供了兩個版本的框架(每個版本都位于各自的JAR內(nèi));一個用于CLDC 1.0應(yīng)用程序,另一個用于CLDC 1.1應(yīng)用程序(其中,支持浮點(diǎn)原型)。按照典型的JUnit慣例,使用JMUnit創(chuàng)建適當(dāng)?shù)膯卧獪y試的第一步是創(chuàng)建一個測試用例。為了在JMUnit中創(chuàng)建一個測試用例,你必須創(chuàng)建一個新的派生自JMUnit的jmunit.framework.cldc10.TestCase或jmunit.framework.cldc11.TestCase的測試用例類。正如其包名所暗示的,一個支持1.0版本的CLDC,另一個支持1.1版本的CLDC。唯一的區(qū)別是,在assertEquals()和assertNotEquals()方法(見下面)的cldc11.TestCase實(shí)現(xiàn)中支持Java浮點(diǎn)原型。

按照J(rèn)Unit習(xí)慣,一個測試用例類應(yīng)該包含要測試的類名,并且以"Test"結(jié)束。因此,一個測試上面這個溫度轉(zhuǎn)換類的簡單的CLDC 1.1版本的JMUnit測試用例可以按如下方式定義:

public class TemperatureConversionTest extends jmunit.framework.cldc11.TestCase {}

所有的測試方法必須位于一個測試用例類之內(nèi)。而且,按照慣例,測試方法名都以"test"開頭,然后根據(jù)被測試的類中的方法進(jìn)行命名。例如,一個測試fahrenheitToCelsius方法的測試用例方法應(yīng)該為testfahrenheitToCelsius。每一個測試方法必須"斷言"期望的結(jié)果。對于那些不熟悉JUnit測試的開發(fā)者來說,一個斷言其實(shí)就是一個語句,它負(fù)責(zé)驗(yàn)證或證明從某個方法執(zhí)行中程序員所期望的結(jié)果。JMUnit支持下列斷言:

assertTrue(expression)

assertFalse(expression)

assertSame(expected,actual)

assertNotSame(expected,actual)

assertEquals(expected,actual)

assertNotEquals(expected,actual)

assertNull(object)

assertNotNull(object)

在JMUnit中,任何使用這些斷言調(diào)用之一的測試方法都必須拋出一個AssertionFailedException異常。框架使用該異常來標(biāo)識失敗的測試?,F(xiàn)在,這個添加了適當(dāng)測試方法的TemperatureConversionTest類看起來如下所示。

import jmunit.framework.cldc11.*;

public class TemperatureConversionTest extends TestCase {

public void testfahrenheitToCelsius() throws AssertionFailedException{

System.out.println("fahrenheitToCelsius");

float result = TemperatureConversion.fahrenheitToCelsius(66F);

assertEquals(18.88889F,result);

}

public void testcelsiusToFahrenheit() throws AssertionFailedException{

System.out.println("celsiusToFahrenheit");

float result = TemperatureConversion.celsiusToFahrenheit(20F);

assertEquals(68F, result);

}

public void testisHotter() throws AssertionFailedException {

System.out.println("isHotter");

assertTrue(TemperatureConversion.isHotter(70F,2F));

}

public void testisCooler() throws AssertionFailedException {

System.out.println("isCooler");

assertTrue(TemperatureConversion.isCooler(10F,10F));

}

}

對于每一個標(biāo)準(zhǔn)的JUnit實(shí)現(xiàn),JMUnit測試用例抽象類都提供了setup()和tearDown()方法,這兩個方法都能夠被重載并用于初始化,并在經(jīng)由測試用例運(yùn)行測試前后用來清除任何對象或資源。例如,在Java ME應(yīng)用程序中,setup()可以用于在測試前打開一個記錄存儲,而tearDown()用于在測試后關(guān)閉記錄存儲。除了setup和tearDown方法外,還有一個fail()方法用于實(shí)現(xiàn)-無論assert語句顯示什么內(nèi)容,都允許一個測試方法返回一個測試失敗。這個方法經(jīng)常用于一個測試方法內(nèi)的某些條件中,或用于作為未開發(fā)的單元測試的一個代理,從而作為一種方式來指示尚待完成的工作。

JMUnit中的每一個測試用例類都有一個相應(yīng)的構(gòu)造器。因此,派生自JMUnit的測試用例類的構(gòu)造器必須調(diào)用超類構(gòu)造器,并傳入一個整數(shù)以指示在該測試用例中的測試個數(shù),還要傳入一個字符串來標(biāo)識該測試用例。

public TemperatureConversionTest() {

super(4,"TemperatureConversionTest");

}

這個整數(shù)指示測試的個數(shù)必須匹配測試用例中的實(shí)際測試的數(shù)目。確保你傳入構(gòu)造器的測試的個數(shù)匹配測試用例中的實(shí)際的測試的個數(shù)是相當(dāng)重要的。當(dāng)你分析該測試用例的test(int testNumber)方法,就會看到它們之間的關(guān)系。

測試用例中的這個test(int testNumber)方法負(fù)責(zé)"剔除"測試方法。因?yàn)镴ava ME缺乏映射能力,所以不能象在JUnit中一樣,找到test方法并自動地執(zhí)行之。因此,每一個測試方法必須被添加到該test方法中的一個switch語句中,并且基于一個測試號進(jìn)行相應(yīng)的調(diào)用。在我們的TemperatureConversionTest情況下,這個test方法看起來如下列代碼所示:

public void test(int testNumber) throws Throwable {

switch(testNumber) {

case 0:testfahrenheitToCelsius();break;

case 1:testcelsiusToFahrenheit();break;

case 2:testisHotter();break;

case 3:testisCooler();break;

default: break;

}

}

這也正解釋了為什么你必須向測試用例構(gòu)造器提供一個測試號。在運(yùn)行時刻,JMUnit框架創(chuàng)建一個測試用例類的實(shí)例。然后,框架在一個循環(huán)內(nèi)調(diào)用該測試用例實(shí)例的每一個測試方法。通過這種方式,測試方法的switch語句中的每一個case語句(以及相應(yīng)的每一個測試)都會被框架所調(diào)用。當(dāng)把一個測試方法添加到測試用例中時,如果忘記更新測試用例類的構(gòu)造器可能會導(dǎo)致部分測試用例不被激活。

“怎么使用JMUnit”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

文章名稱:怎么使用JMUnit
新聞來源:http://bm7419.com/article46/jdeseg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、品牌網(wǎng)站制作、網(wǎng)頁設(shè)計公司、、關(guān)鍵詞優(yōu)化商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)