天天看點

Day02JavaWeb【Servlet & ServletContext】新的開發方式

測試驅動開發 TDD ***

  • (1)什麼是測試驅動開發?

    測試驅動開發,英文全稱Test-Driven Development,簡稱TDD,是一種不同于傳統軟體開發流程的新型的開發方法

  • (2)有什麼特點?

    先編寫測試代碼–主要邏輯

    再寫功能代碼–再實作細節

    通過測試來推動整個開發的進行

    這有助于編寫簡潔可用和高品質的代碼,并加速開發過程。

src\com\wzx\Demo04.java

Day02JavaWeb【Servlet & ServletContext】新的開發方式

雖然代碼中報錯,但是主要邏輯是清楚的,報錯是因為類未實作,隻要實作了,代碼錯誤就自動修複了

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);
    }
}      

點選 左側綠色按鈕即可運作

  • 綠色表示沒有異常
  • 紅色表示出現異常