我們要寫一個會將輸入的數字乘以二輸出的頁面
首先
我們要先create 我們的project
接著我們要create 我們的 test project
接著他要要我們選擇我們希望Test 的project
接著新增一個JUnit Test Case
setup 和 teardown 分別為 test開始前的前置作業以及結束時後置作業
接著開始我們寫test
public class MyTest extends TestCase { int expect = 6; Calculater cal ; public MyTest(String name) { super(name); } protected void setUp() throws Exception { super.setUp(); cal = new Calculater(); } @SmallTest public void testDoubleMul() { assertEquals(expect ,cal.execute(3)); } }
這是一個簡單的 test case 到目前為止
都還沒寫出Calculater這個class
在寫完test case 之後
創建 Calculater class
public class Calculater { public int execute(int val) { return 0; } }
接著run test case project 這時紅燈出現了......測試會失敗
(當然...我們根本還沒實作execute的功能)
接著我們實作這個class
public class Calculater { public int execute(int val) { return val*2; } }
之後再run一次 test 就出現綠燈了
恭喜各位
完成了實作簡單的測試,同時也實作了一次TDD的做法
最後稍微提一下寫test有個3A原則
Arrage:初始化目標物件 事前準備
Act: :執行行為
Assert:檢查結果是否符合預期
TDD的做法是先寫測試案例,然後再去實作class,
在實作上其實有某些程度的難度,需要時間來熟練,
TDD的好處是通常可測試的class,耦合度也會相對較低。
沒有留言:
張貼留言