999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

NetBeans平臺軟件開發單元測試技術的研究

2008-12-31 00:00:00
電腦知識與技術 2008年16期

摘要:軟件開發和軟件測試就像兩兄弟,他們密不可分、協同合作,目標只有一個,那就是成功開發出高質量的軟件。開發與測試之間的關系如此密切,讓我們很難徹底的將兩者嚴格的劃分開來。單元測試做為測試的一部分,一般都由編碼人員來承擔,對于模塊級一直都是誰編碼、誰測試。因此測試不僅僅是測試人員的事情,作為編碼人員也需要懂得測試的基本方法,以通過單元測試提交高質量的程序模塊。

關鍵詞:NetBeans;Junit;單元測試

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)16-21255-03

NetBeans Platform Software Development Unit Testing Technology Research

TANG Jun

(Hunan Urban Construction College, Xiangtan 411101,China)

Abstract: Software development and software testing like the two brothers, they are inseparable, collaboration, there is only one objective, that is, successful development of high-quality software. Development and testing of the relationship between such closely, it is difficult to complete the demarcation of the two strict set. Unit testing as part of the test, the general commitment by the staff to coding, the module level who has been coded, who tests. So the test is not just testing things, as a coding staff also need to understand the basic test methods, through unit testing procedures to high-quality modules.

Key words: NetBeans; Junit; unit testing

1 引言

任何一個程序員都知道單元測試的重要性,沒有經過嚴格測試的模塊是“靠不住”的,組裝過程會出現越來越多的Bug,甚至到了客戶那里都不能正常工作,這簡直就是一場災難。雖然每個程序員都深刻的知道這點,但是很多時候在進度的壓力下,程序員不得不放棄部分甚至是全部的單元測試。特別是在我國現在的國情下,獻禮項目太多,建設方的領導為了在某個“有意義”的日子里使項目上線,往往迫使軟件開發方違背客觀事實,在不可能的工期內完工。程序員作為項目的最底層人員,自然沒有力量來進行反抗,當他們加班加點都無法在規定時間完成,于是放棄測試就成為了他們的唯一選擇。

很快這就成為一個惡性循環:壓力越大,編寫的測試越少。編寫的測試越少,的效率越低,并且代碼越不穩定。而效率越低并且越不精確,開發人員就感覺越有壓力。

程序員的精力就在這樣的惡性循環中被耗費掉。想要打破它需要一種外界的影響。所謂的這種外界的影響,其實就是一個簡單的測試框架,它可以讓我們通過做很少的測試,來達到完整的測試,減少我們編寫測試代碼的時間。

2 NetBeans 5.0對單元測試的支持

NetBeans IDE 5.0 引入了對基于 NetBeans 平臺的 IDE 模塊和富客戶端程序開發的全面支持,直觀的全新 GUI Builder Matisse,經過重新設計的對 CVS 的新支持,對 Sun Application Server 8.2、Weblogic9 和 JBoss 4 的支持,以及很多的編輯器增強功能。同時集成了Java開發工具中應用最廣泛的單元測試工具Junit,使得在NetBeans下進行單元測試變得簡單容易,提高了程序員進行單元測試的積極性。

可以使用NetBeans IDE創建以下類型的測試:

(1)空測試:沒有測試方法的測試框架,尚未指定要測試的任何類。

(2)現有類的測試:包含實際測試方法的類,這些方法鏡像了要測試的源的結構。

(3)測試套件:匯集在一起的幾組測試類,允許對整個應用程序或項目進行測試。

可以使用以下方法生成并找到測試:在“項目”窗口中選擇任何類或包節點,然后從“工具”> \"JUnit\" 菜單中進行選擇。NetBeans 將單元測試表示為子樹,這些子樹反映了項目的 Java 包結構。每個測試類都由它所測試的類的名稱后Test 單詞組成(如 MyClassTest.java)。

每個項目都有一個缺省的測試包,所有的測試文件都在測試包內被組織。程序文件與測試文件被分割成兩個獨立的部分,在項目下分為一個SRC文件夾和一個TEST文件夾,互相不產生影響,測試完成后,只需要將SRC文件夾單獨移開,并不需要TEST文件夾的支持。包結構如圖1:

3 被測試模塊的編寫

新建一個Java類庫的項目,項目名稱為:MoneyChange,新建包moneychange,在包中添加類Money.class。

package moneychange;

public class Money {

private int fAmount;

private String fCurrency;

public Money(int amount,String currency) {

fAmount=amount;

fCurrency=currency;

}

………

}

該類有兩個私有屬性fAmount和fCurrency,構造函數在對類進行初始化的時候,對兩個私有屬性進行了賦值。Add方法對兩個Money對象的現金(fAmount)進行相加,equals方法對兩個Money對象的現金及貨幣單位進行比較是否相等。

4 創建單元測試

在項目窗口中的類Money.class上鼠標右鍵單擊,在彈出的菜單中選擇“工具”,并在子菜單中選擇“創建Junit測試”。

這并不是創建單元測試的唯一方法,也可以通過“工具”下拉菜單中的“創建Junit測試”進行。接著彈出“創建測試”對話框,對測試類的類名以及需要生成的內容進行選擇后,點擊“確定”即可完成測試類的生成。

5 測試代碼的修改

Junit不是萬能的,不要指望它什么都幫你做好,在單元測試中,Junits 負責測試框架的生成,其他的事情還是需要程序員來做,如測試用例的設計和測試管理等。Junit針對上面代碼生成的測試代碼如下(已經刪除部分注釋):

package moneychange;

import junit.framework.*;

public class MoneyTest extends TestCase {

public MoneyTest(String testName) {

super(testName);}

protected void setUp() throws Exception {}

protected void tearDown() throws Exception {}

public void testAmount() {

System.out.println(\"amount\");

Money instance = 1;

int expResult = 0;

int result = instance.amount();

assertEquals(expResult, result);

fail(\"測試案例為原型。\");}

public void testCurrency() {

System.out.println(\"currency\");

Money instance = 1;

String expResult = \"\";

String result = instance.currency();

assertEquals(expResult, result);

fail(\"測試案例為原型。\");}

public void testAdd() {

System.out.println(\"add\");

Money m = 1;

Money instance = 1;

Money expResult = 1;

Money result = instance.add(m);

assertEquals(expResult, result);

fail(\"測試案例為原型。\"); }

public void testEquals() {

System.out.println(\"equals\");

Object anObject = 1;

Money instance = 1;

boolean expResult = true;

boolean result = instance.equals(anObject);

assertEquals(expResult, result);

fail(\"測試案例為原型。\");}

}

此時,如果要執行測試,可以展開項目中的測試包,在測試類上鼠標右鍵單機,在彈出的菜單上選擇“運行文件”,如圖2所示。默認的測試類的執行結果是全部都不能通過的,結果如圖3。

圖2 圖3

我們需要對生成的測試代碼進行修改,將我們的測試用例以及期望的結果寫入測試代碼中,將fail(“測試案例為原型”);語句刪除。testAdd的代碼修改后如下:

public void testAdd() {

System.out.println(\"testAdd\");

Money m12CHF= new Money(12, \"CHF\");

Money m14CHF= new Money(14, \"CHF\");

Money expected= new Money(26, \"CHF\");

Money result= m12CHF.add(m14CHF);

Assert.assertTrue(expected.equals(result));

}

該方法創建了兩個進行加法操作的對象m12CHF和m14CHF,相加的結果為result對象,然后將result與期望的對象expected對象進行相等性測試。對修改后的測試代碼再次執行結果如圖4。

圖4

對所有的測試用例進行測試通過后,即可以開始填寫單元測試報告。通過單元測試的類比沒有經過測試的類的穩定性將大大提高。

6 結束語

NetBeans集成的Junit單元測試工具為單元測試提供了一個很好的框架,我們無需將精力浪費在寫單元測試代碼上,而將更多的關注測試用例的設計。開發人員進行測試越來越方便,這也增強了開發人員進行單元測試的信心,在趕工期的同時將單元測試做好,是保證項目最后能夠成功的一個重要手段。

參考文獻:

[1] 蔡高亮.軟件單元測試[J].信息技術與標準化,2008(Z1).

[2] 劉升華.單元測試自動化工具的研究與實現[J].計算機工程與設計, 2007(23).

[3] 郭雯.基于VC6.0的單元測試研究與實踐[J].甘肅科技,2007(02).

[4] 隋智泉.一種改進的單元測試JUnit框架[J].電腦知識與技術,2007(08).

[5] 李海濤,歐全.淺析單元測試在項目開發中的應用.科技信息,2007(20).

注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。

主站蜘蛛池模板: 91无码国产视频| 免费久久一级欧美特大黄| 午夜久久影院| 就去色综合| 综1合AV在线播放| 九九精品在线观看| 国产精品刺激对白在线| 日本国产精品| 国产成人精品日本亚洲| 一级毛片无毒不卡直接观看| 激情综合五月网| 这里只有精品国产| 全裸无码专区| 欧美一区二区啪啪| 亚洲一区二区无码视频| 国产夜色视频| 中文字幕有乳无码| 狠狠做深爱婷婷久久一区| 亚洲第一av网站| 日本国产一区在线观看| 精品国产香蕉在线播出| 久久五月天综合| 中国精品自拍| 五月天在线网站| 国产好痛疼轻点好爽的视频| 丰满人妻中出白浆| 国产精品太粉嫩高中在线观看| 欧美在线伊人| 亚洲成A人V欧美综合| 国产三级精品三级在线观看| 国产麻豆福利av在线播放 | 欧美午夜在线观看| 国产成人精品18| 丝袜美女被出水视频一区| 亚洲精品手机在线| 亚洲成人在线免费| a级毛片免费看| 免费在线成人网| 色综合久久88| 浮力影院国产第一页| 亚洲综合18p| 超碰aⅴ人人做人人爽欧美| 婷婷成人综合| 日韩二区三区无| 高清无码一本到东京热| 亚洲精品黄| 亚洲一区二区三区在线视频| www.国产福利| 自拍偷拍欧美| 99在线观看精品视频| 色婷婷亚洲十月十月色天| 亚洲国产精品日韩av专区| 欧洲欧美人成免费全部视频| 亚洲欧美精品一中文字幕| 亚洲三级a| 538国产视频| 波多野结衣中文字幕一区二区| 国产成人精品一区二区| 国产免费怡红院视频| 黄色网站在线观看无码| 国产视频一二三区| 亚洲精品777| 一级毛片免费播放视频| 91视频青青草| 国产亚洲欧美日韩在线一区二区三区| 亚洲精品人成网线在线| 国产区在线观看视频| 日日拍夜夜嗷嗷叫国产| 2020国产免费久久精品99| 毛片在线看网站| 亚洲无码一区在线观看| 99re经典视频在线| 激情视频综合网| 精品1区2区3区| 无码有码中文字幕| 久久久精品久久久久三级| 国产欧美日韩在线在线不卡视频| 都市激情亚洲综合久久| 91视频区| 波多野结衣无码AV在线| 青青青视频免费一区二区| h视频在线观看网站|