中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用JMUnit

發布時間:2021-12-31 10:06:08 來源:億速云 閱讀:138 作者:iii 欄目:編程語言

本篇內容介紹了“怎么使用JMUnit”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

使用JMUnit

a) 建立JMUnit

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

b) JMUnit測試用例

JMUnit提供了兩個版本的框架(每個版本都位于各自的JAR內);一個用于CLDC 1.0應用程序,另一個用于CLDC 1.1應用程序(其中,支持浮點原型)。按照典型的JUnit慣例,使用JMUnit創建適當的單元測試的第一步是創建一個測試用例。為了在JMUnit中創建一個測試用例,你必須創建一個新的派生自JMUnit的jmunit.framework.cldc10.TestCase或jmunit.framework.cldc11.TestCase的測試用例類。正如其包名所暗示的,一個支持1.0版本的CLDC,另一個支持1.1版本的CLDC。唯一的區別是,在assertEquals()和assertNotEquals()方法(見下面)的cldc11.TestCase實現中支持Java浮點原型。

按照JUnit習慣,一個測試用例類應該包含要測試的類名,并且以"Test"結束。因此,一個測試上面這個溫度轉換類的簡單的CLDC 1.1版本的JMUnit測試用例可以按如下方式定義:

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

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

assertTrue(expression)

assertFalse(expression)

assertSame(expected,actual)

assertNotSame(expected,actual)

assertEquals(expected,actual)

assertNotEquals(expected,actual)

assertNull(object)

assertNotNull(object)

在JMUnit中,任何使用這些斷言調用之一的測試方法都必須拋出一個AssertionFailedException異常。框架使用該異常來標識失敗的測試。現在,這個添加了適當測試方法的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));

 }

}

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

JMUnit中的每一個測試用例類都有一個相應的構造器。因此,派生自JMUnit的測試用例類的構造器必須調用超類構造器,并傳入一個整數以指示在該測試用例中的測試個數,還要傳入一個字符串來標識該測試用例。

public TemperatureConversionTest() {

 super(4,"TemperatureConversionTest");

}

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

測試用例中的這個test(int testNumber)方法負責"剔除"測試方法。因為Java ME缺乏映射能力,所以不能象在JUnit中一樣,找到test方法并自動地執行之。因此,每一個測試方法必須被添加到該test方法中的一個switch語句中,并且基于一個測試號進行相應的調用。在我們的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;

 }

}

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

“怎么使用JMUnit”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

林甸县| 东宁县| 历史| 综艺| 惠水县| 芒康县| 德州市| 磴口县| 静安区| 卓尼县| 始兴县| 都安| 瑞安市| 革吉县| 承德县| 鹤山市| 定州市| 民权县| 英超| 四平市| 宝山区| 鱼台县| 房产| 怀仁县| 太仓市| 建昌县| 东城区| 江源县| 那曲县| 汉寿县| 大连市| 锡林郭勒盟| 侯马市| 赫章县| 安阳县| 沁源县| 青神县| 始兴县| 青浦区| 东城区| 金乡县|