在Eclipse中使用JUnit4进行单元測试(0基础篇)
我們在編寫大型程序的時候,須要寫成千上萬個方法或函數,這些函數的功能可能非常強大,但我們在程序中僅僅用到該函數的一小部分功能,而且經過調試能夠確定,這一小部分功能是正確的。可是,我們同一時候應該確保每個函數都全然正確,由于假設我們今后假設對程序進行擴展,用到了某個函數的其它功能,而這個功能有bug的話,那絕對是一件非常郁悶的事情。所以說,每編寫完一個函數之后,都應該對這個函數的方方面面進行測試,這種測試我們稱之為單元測試。傳統的編程方式,進行單元測試是一件非常麻煩的事情,你要又一次寫另外一個程序,在該程序中調用你須要測試的方法,而且細致觀察執行結果,看看是否有錯。正由于如此麻煩,所以程序猿們編寫單元測試的熱情不是非常高。于是有一個牛人推出了單元測試包,大大簡化了進行單元測試所要做的工作,這就是JUnit4。本文簡要介紹一下在Eclipse3.2中使用JUnit4進行單元測試的方法。
首先,我們來一個傻瓜式速成教程,不要問為什么,Follow Me,先來體驗一下單元測試的快感!
首先新建一個項目叫JUnit_Test,我們編寫一個Calculator類,這是一個可以簡單實現加減乘除、平方、開方的計算器類,然后對這些功能進行單元測試。這個類并非非常完美,我們有益保留了一些Bug用于演示,這些Bug在凝視中都有說明。該類代碼例如以下:
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…”button,例如以下圖所看到的:
然后在新彈出的對話框中選擇JUnit4并點擊確定,如上圖所看到的,JUnit4軟件包就被包括進我們這個項目了。
??? 第三步,生成JUnit測試框架:在Eclipse的Package Explorer中用右鍵點擊該類彈出菜單,選擇“New à JUnit Test Case”。例如以下圖所看到的:
在彈出的對話框中,進行對應的選擇,例如以下圖所看到的:
??? 點擊“下一步”后,系統會自己主動列出你這個類中包括的方法,選擇你要進行測試的方法。此例中,我們僅對“加、減、乘、除”四個方法進行測試。例如以下圖所看到的:
之后系統會自己主動生成一個新類CalculatorTest,里面包括一些空的測試用例。你僅僅須要將這些測試用例稍作改動就可以使用。完整的CalculatorTest代碼例如以下:
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的方法。在接下來的文章中,我會詳解測試代碼中的每個細節! 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的在Eclipse中使用JUnit4进行单元測试(0基础篇)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: m_Orchestrate learni
- 下一篇: 辟谣|bitcoin core0.16.