練習測試驅動開發
- 實驗目的
練習測試驅動開發
- 實驗內容及結果
一個名為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));
}
}