2014年1月17日 星期五

Android 開發 (十五) android 撰寫 test case

目標

我們要寫一個會將輸入的數字乘以二輸出的頁面

首先

我們要先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,耦合度也會相對較低。

沒有留言:

張貼留言