日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Junit单元测试学习笔记一

發(fā)布時(shí)間:2024/6/21 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Junit单元测试学习笔记一 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們?cè)诰帉懘笮统绦虻臅r(shí)候,需要寫成千上萬(wàn)個(gè)方法或函數(shù),這些函數(shù)的功能可能很強(qiáng)大,但我們?cè)诔绦蛑兄挥玫皆摵瘮?shù)的一小部分功能,并且經(jīng)過(guò)調(diào)試可以確定,這一小部分功能是正確的。但是,我們同時(shí)應(yīng)該確保每一個(gè)函數(shù)都完全正確,因?yàn)槿绻覀兘窈笕绻麑?duì)程序進(jìn)行擴(kuò)展,用到了某個(gè)函數(shù)的其他功能,而這個(gè)功能有bug的話,那絕對(duì)是一件非常郁悶的事情。所以說(shuō),每編寫完一個(gè)函數(shù)之后,都應(yīng)該對(duì)這個(gè)函數(shù)的方方面面進(jìn)行測(cè)試,這樣的測(cè)試我們稱之為單元測(cè)試。傳統(tǒng)的編程方式,進(jìn)行單元測(cè)試是一件很麻煩的事情,你要重新寫另外一個(gè)程序,在該程序中調(diào)用你需要測(cè)試的方法,并且仔細(xì)觀察運(yùn)行結(jié)果,看看是否有錯(cuò)。正因?yàn)槿绱寺闊?#xff0c;所以程序員們編寫單元測(cè)試的熱情不是很高。于是有一個(gè)牛人推出了單元測(cè)試包,大大簡(jiǎn)化了進(jìn)行單元測(cè)試所要做的工作,這就是JUnit4。本文簡(jiǎn)要介紹一下在Eclipse中使用JUnit4進(jìn)行單元測(cè)試的方法。

首先新建一個(gè)項(xiàng)目叫JUnit_Test,我們編寫一個(gè)Calculator類,這是一個(gè)能夠簡(jiǎn)單實(shí)現(xiàn)加減乘除、平方、開方的計(jì)算器類,然后對(duì)這些功能進(jìn)行單元測(cè)試。這個(gè)類并不是很完美,我們故意保留了一些Bug用于演示,這些Bug在注釋中都有說(shuō)明。該類代碼如下:

?

package?andycpp;

public?class?Calculator?{
????private?static?int?result;?//?靜態(tài)變量,用于存儲(chǔ)運(yùn)行結(jié)果
????public?void?add(int?n)?{
????????result?=?result?+?n;
????}
????public?void?substract(int?n)?{
????????result?=?result?-?1;??//Bug:?正確的應(yīng)該是?result =result-n
????}
????public?void?multiply(int?n)?{
????}?????????//?此方法尚未寫好
????public?void?divide(int?n)?{
????????result?=?result?/?n;
????}
????public?void?square(int?n)?{
????????result?=?n?*?n;
????}
????public?void?squareRoot(int?n)?{
????????for?(;?;)?;???????????? ? ? ??//Bug?:?死循環(huán)
????}
????public?void?clear()?{?????//?將結(jié)果清零
????????result?=?0;
????}
????public?int?getResult()?{
????????return?result;
????}
}

?

第二步,將JUnit4單元測(cè)試包引入這個(gè)項(xiàng)目:在該項(xiàng)目上點(diǎn)右鍵,點(diǎn)“屬性”,如圖:

?


在彈出的屬性窗口中,首先在左邊選擇“Java Build Path”,然后到右上選擇“Libraries”標(biāo)簽,之后在最右邊點(diǎn)擊“Add Library…”按鈕,如下圖所示:


然后在新彈出的對(duì)話框中選擇JUnit4并點(diǎn)擊確定,如上圖所示,JUnit4軟件包就被包含進(jìn)我們這個(gè)項(xiàng)目了。

??? 第三步,生成JUnit測(cè)試框架:在EclipsePackage Explorer中用右鍵點(diǎn)擊該類彈出菜單,選擇“New?à?JUnit Test Case”。如下圖所示:
在彈出的對(duì)話框中,進(jìn)行相應(yīng)的選擇,如下圖所示:


??? 點(diǎn)擊“下一步”后,系統(tǒng)會(huì)自動(dòng)列出你這個(gè)類中包含的方法,選擇你要進(jìn)行測(cè)試的方法。此例中,我們僅對(duì)“加、減、乘、除”四個(gè)方法進(jìn)行測(cè)試。如下圖所示:


之后系統(tǒng)會(huì)自動(dòng)生成一個(gè)新類CalculatorTest,里面包含一些空的測(cè)試用例。你只需要將這些測(cè)試用例稍作修改即可使用。完整的CalculatorTest代碼如下:

?

package?andycpp;

import?static?org.junit.Assert.*;
import?org.junit.Before;
import?org.junit.Ignore;
import?org.junit.Test;

public?class?CalculatorTest?{

????private?static?Calculator?calculator?=?new?Calculator();
????
????@Before
????public?void?setUp()?throws?Exception?{
????????calculator.clear();
????}

????@Test
????public?void?testAdd()?{
????????calculator.add(2);
????????calculator.add(3);
????????assertEquals(5,?calculator.getResult());
????}

????@Test
????public?void?testSubstract()?{
????????calculator.add(10);
????????calculator.substract(2);
????????assertEquals(8,?calculator.getResult());
????}

????@Ignore("Multiply()?Not?yet?implemented")
????@Test
????public?void?testMultiply()?{
????}

????@Test
????public?void?testDivide()?{
????????calculator.add(8);
????????calculator.divide(2);
????????assertEquals(4,?calculator.getResult());
????}
}

?

第四步,運(yùn)行測(cè)試代碼:按照上述代碼修改完畢后,我們?cè)?/span>CalculatorTest類上點(diǎn)右鍵,選擇“Run As?à?JUnit Test”來(lái)運(yùn)行我們的測(cè)試,如下圖所示:

?

運(yùn)行結(jié)果如下:

?

?

進(jìn)度條是紅顏色表示發(fā)現(xiàn)錯(cuò)誤,具體的測(cè)試結(jié)果在進(jìn)度條上面有表示“共進(jìn)行了4個(gè)測(cè)試,其中1個(gè)測(cè)試被忽略,一個(gè)測(cè)試失敗”

轉(zhuǎn)載于:https://www.cnblogs.com/Ant-soldier/p/5042485.html

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的Junit单元测试学习笔记一的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。