在Eclipse中使用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…”按鈕,如下圖所示:
然后在新彈出的對話框中選擇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的方法。
【相關文章】:在Eclipse中使用JUnit4進行單元測試(中)