
用Junit測試計算器單元對象類
8頁實驗報告五課程名稱:軟件測試學生姓名:董月班級:浦計1104班學號:P1401110402指導教師:韓志剛實驗日期:2014-5-8南京工業(yè)大學電子與信息學院實驗五一、 實驗內容用java語言編寫一個計算器類,求實現加、減、乘、除、求平方根、求絕對值、求倒數1/x,方法,并用junit進行對象類的單元測試參閱幫助文檔說明,設計求除法、求倒數的方法,可在方法中不檢測x是否為0,測試用例用y/0去測試、求平方根可不檢測x>0,用負數測試)二、 實驗步驟首先新建一個項目叫JUnit_Test,我們編寫一個Calculator類,這是一個能夠簡單實現加減乘除、平方、開方的計算器類,然后對這些功能進行單元測試建立一個hzg包:建立一個Calculator類:把代碼輸進類中:package hzg;public class Calculator { private static int result; // 靜態(tài)變量,用于存儲運行結果 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) { result=result*n; } public void divide(int n) { result = result / n; } public void square(int n) { result = n * n; } public void squareRoot(int n) { result= (int) Math.sqrt(n); } public void clear() { // 將結果清零 result = 0; } public void reciprocal(int n) { result=1/n; } public void absolute(int n) { result=Math.abs(n); } public int getResult() { return result; }}第二步,將JUnit4單元測試包引入這個項目:在該項目上點右鍵,點“屬性”,在彈出的屬性窗口中,首先在左邊選擇“Java Build Path”,然后到右上選擇“Libraries”標簽,之后在最右邊點擊“Add Library…”按鈕,如下圖所示:然后在新彈出的對話框中選擇JUnit4并點擊確定,如上圖所示,JUnit4軟件包就被包含進我們這個項目了。
第三步,生成JUnit測試框架:在Eclipse的Package Explorer中用右鍵點擊該類彈出菜單,在彈出的對話框中,進行相應的選擇加、減、乘、除,之后系統(tǒng)會自動生成一個新類CalculatorTest,里面包含一些空的測試用例只需要將這些測試用例稍作修改即可使用完整的CalculatorTest代碼如下:package hzg;import static org.junit.Assert.*;import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Test;public class CalculatorTest { private static Calculator calculator = new Calculator(); @BeforeClass public static void setUpBeforeClass() throws Exception { } @AfterClass public static void tearDownAfterClass() throws Exception { } @Before public void setUp() throws Exception { calculator.clear(); } @After public void tearDown() throws Exception { } @Test public void testAdd() { calculator.add(3); calculator.add(4); assertEquals(7, calculator.getResult()); } @Test public void testSubstract() { calculator.add(8); calculator.substract(2); assertEquals(6, calculator.getResult()); } @Test public void testMultiply() { calculator.add(4); calculator.multiply(5); assertEquals(20, calculator.getResult()); } @Test public void testDivide() { calculator.add(6); calculator.divide(3); assertEquals(2, calculator.getResult()); } @Test public void testSquare() { calculator.square(-2); assertEquals(4,calculator.getResult()); } @Test public void testSquareRoot() { calculator.squareRoot(100); assertEquals(10,calculator.getResult()); } @Test public void testReciprocal() { calculator.reciprocal(5); assertEquals(0,calculator.getResult()); } @Test public void testAbsolute() { calculator.absolute(-7); assertEquals(7, calculator.getResult()); }}運行結果如下:將除法進行修改:將減法的bug進行修改public void substract(int n) { result = result - 1; //Bug: 正確的應該是 result =result-n。