測試驅動開發 TDD ***
-
(1)什麼是測試驅動開發?
測試驅動開發,英文全稱Test-Driven Development,簡稱TDD,是一種不同于傳統軟體開發流程的新型的開發方法
-
(2)有什麼特點?
先編寫測試代碼–主要邏輯
再寫功能代碼–再實作細節
通過測試來推動整個開發的進行
這有助于編寫簡潔可用和高品質的代碼,并加速開發過程。
src\com\wzx\Demo04.java

雖然代碼中報錯,但是主要邏輯是清楚的,報錯是因為類未實作,隻要實作了,代碼錯誤就自動修複了
public class Person {
public void eat(String food) {
System.out.println("吃..."+food);
int num = 1;
System.out.println(100/num);
}
public void run(int num) {
System.out.println("跑..."+num);
}
}
Junit 單元測試***
-
(1)為什麼使用Junit?
測試一個類的多個方法,如果使用main方法,不便利
細粒度測試
-
(2)為什麼Junit
JUnit是一個Java語言的單元測試架構。
- (3) junit是在極限程式設計和重構(refactor)中被極力推薦使用的工具
-
(4)Junit的注解
@Before
@After
@Test
極限程式設計
要求在編寫代碼之前先寫測試,這樣可以強制你在寫代碼之前好好的思考代碼(方法)的功能和邏輯,否則編寫的代碼很不穩定,那麼你需要同時維護測試代碼和實際代碼,這個工作量就會大大增加。是以在極限程式設計中,基本過程是這樣的:構思-> 編寫測試代碼-> 編寫代碼-> 測試,而且編寫測試和編寫代碼都是增量式的,寫一點測一點,在編寫以後的代碼中如果發現問題可以較快的追蹤到問題的原因,減小回歸錯誤的糾錯難度。
重構
其好處和極限程式設計中是類似的,因為重構也是要求改一點測一點,減少回歸錯誤造成的時間消耗。
test\java\com\wzx\PersonTest.java
public class PersonTest {
private Person person;
//@Before标記的方法,運作在@Test之前,初始化
@Before
public void init(){
person = new Person();
System.out.println("init");
}
//@After标記的方法運作在@Test方法之後,銷毀
@After
public void destory(){
System.out.println("destory");
person = null;
}
//@Test 在測試方法上加,類似main獨立運作
@Test
public void testEat(){
System.out.println("testEat");
person.eat("漢堡");
}
@Test
public void testRun(){
person.run(1000);
}
}
點選 左側綠色按鈕即可運作
- 綠色表示沒有異常
- 紅色表示出現異常