1. 程式人生 > >練習測試驅動開發

練習測試驅動開發

  1. 實驗目的

練習測試驅動開發

  1. 實驗內容及結果

一個名為MyTriangle的類包含三個資料域 double s1, s2, s3,分別代表組成三角形的三個邊的長度。使用測試驅動開發的方法,這個類有一個判斷三角形是否合法的方法,定義如下:

         public boolean isValid();

 如果兩邊之和大於第三邊並且所有的邊長均不為0,則返回true;否則返回false 。

採用測試驅動開發的模式,完成這個方法的開發。

 

由於問題比較簡單,可以省略TDD中的某些步驟,但這個方法的開發至少包含下面三個步驟:

1. 編寫一個空方法;

2. 編寫測試程式並執行(失敗)

3. 修改方法,使之通過測試

給出用TDD模式,開發isValid的過程,包括程式碼以及執行測試的截圖,格式參考課件。

 

 

 

編寫一個空方法;

編寫測試程式並執行(失敗)

修改方法,使之通過測試

 

       修改isValid方法的需求,使得一個點和一調直線均為合法的三角形。使用TDD的思想對這個方法進行修改,需要首先修改並執行測試程式(此時執行結果應為失敗),然後修改isValid方法,再執行測試方法(正確修改isValid後,執行測試結果應為成功)。

給出TDD思想,對isValid進行修改的過程,包括程式碼以及執行測試的截圖,格式參考課件課件。

程式碼如下:


MyTriangle.java

 

public class MyTriangle {
    /*
     * 如果兩邊之和大於第三邊並且所有的邊長均不為0,則返回true;否則返回false 。
     * 
     * @double s1
     * 
     * @double s2
     * 
     * @double s3
     * 
     * @return true / false 是否為三角形
     */

    public boolean isValid(double s1, double s2, double s3) {
        if (s1 > 0 && s2 > 0 && s3 > 0) {
            
            if ((s1 + s2 > s3) && (s1 + s3 > s2) && (s2 + s3 > s1)) {
                return true;
            }

        }
        return false;
    }

}


MyTriangleTest.java

 

import static org.junit.Assert.*;

import org.junit.Test;

public class MyTriangleTest {
            
    @Test
    public void testIsValid() {
        
        MyTriangle mt=new MyTriangle();
        
        assertEquals(true,mt.isValid(3, 4, 5));
        assertEquals(true,mt.isValid(5, 12, 13));
        assertEquals(false,mt.isValid(0, 1, 2));
        assertEquals(false,mt.isValid(-3, -4, -5));
    }

}