国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JUnit單元測試

2019-11-08 19:34:35
字體:
來源:轉載
供稿:網友

我們在編寫大型程序的時候,需要寫成千上萬個方法或函數,這些函數的功能可能很強大,但我們在程序中只用到該函數的一小部分功能,并且經過調試可以確定,這一小部分功能是正確的。但是,我們同時應該確保每一個函數都完全正確,因為如果我們今后如果對程序進行擴展,用到了某個函數的其他功能,而這個功能有bug的話,那絕對是一件非常郁悶的事情。所以說,每編寫完一個函數之后,都應該對這個函數的方方面面進行測試,這樣的測試我們稱之為單元測試。傳統的編程方式,進行單元測試是一件很麻煩的事情,你要重新寫另外一個程序,在該程序中調用你需要測試的方法,并且仔細觀察運行結果,看看是否有錯。正因為如此麻煩,所以程序員們編寫單元測試的熱情不是很高。于是有一個牛人推出了單元測試包,大大簡化了進行單元測試所要做的工作,這就是JUnit4。本文簡要介紹一下在Eclipse3.2中使用JUnit4進行單元測試的方法。

首先,我們來一個傻瓜式速成教程,不要問為什么,Follow Me,先來體驗一下單元測試的快感!

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

package andycpp;public class Calculator {    PRivate static int result; // 靜態變量,用于存儲運行結果    public void add(int n) {        result = result + n;    }    public void substract(int n) {        result = result - 1;  //Bug: 正確的應該是 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 : 死循環    }    public void clear() {     // 將結果清零        result = 0;    }    public int getResult() {        return result;    }}

第二步,將JUnit4單元測試包引入這個項目:在該項目上點右鍵,點“屬性”,如圖:

在彈出的屬性窗口中,首先在左邊選擇“java Build Path”,然后到右上選擇“Libraries”標簽,之后在最右邊點擊“Add Library…”按鈕,如下圖所示:然后在新彈出的對話框中選擇JUnit4并點擊確定,如上圖所示,JUnit4軟件包就被包含進我們這個項目了。    第三步,生成JUnit測試框架:在Eclipse的Package Explorer中用右鍵點擊該類彈出菜單,選擇“New à JUnit Test Case”。如下圖所示:在彈出的對話框中,進行相應的選擇,如下圖所示:    點擊“下一步”后,系統會自動列出你這個類中包含的方法,選擇你要進行測試的方法。此例中,我們僅對“加、減、乘、除”四個方法進行測試。如下圖所示:

之后系統會自動生成一個新類CalculatorTest,里面包含一些空的測試用例。你只需要將這些測試用例稍作修改即可使用。完整的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());    }}

第四步,運行測試代碼:按照上述代碼修改完畢后,我們在CalculatorTest類上點右鍵,選擇“Run As à JUnit Test”來運行我們的測試,如下圖所示:

運行結果如下:

進度條是紅顏色表示發現錯誤,具體的測試結果在進度條上面有表示“共進行了4個測試,其中1個測試被忽略,一個測試失敗”

            至此,我們已經完整體驗了在Eclipse中使用JUnit的方法。在接下來的文章中,我會詳細解釋測試代碼中的每一個細節!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彩票| 庄河市| 章丘市| 桐乡市| 保德县| 平邑县| 牙克石市| 乐平市| 崇义县| 黄龙县| 武鸣县| 南华县| 兰西县| 普陀区| 关岭| 东辽县| 长丰县| 呼和浩特市| 自贡市| 中山市| 应城市| 闸北区| 景宁| 延吉市| 游戏| 云阳县| 班玛县| 石楼县| 靖安县| 云安县| 诸城市| 绍兴市| 定远县| 丹东市| 丰原市| 阿坝| 芦溪县| 博白县| 江华| 宁陕县| 合肥市|