ふたたび1章

真ん中ぐらいまで読んだのですが、J2EE勉強会でのid:t-wadaさんの発表を聞いて、もっときちんと理解しないとと思い、再びはじめから。


当面の目標

  • TDDのリズムを身につける

リズム

  1. テストを追加
  2. すべてのテストを実行
  3. 失敗を確認
  4. 小さな修正
  5. すべての成功を確認
  6. 重複を取り除くのためのリファクタリング

状況

  • 為替レートのプログラム

はじめに

  • Todoを作成<仕様の確認リスト>

テストの作成

  • 操作用の完全なインターフェースをイメージ
  • ストーリを考える

はじめてのテストケース

  • testMultiplication


テストクラス

package star.Test;

import star.Dollar;
import junit.framework.TestCase;

public class DollarTest extends TestCase {
    public void testMultiplication() {
        Dollar five = new Dollar(5);
        five.times(2);
        assertEquals(10, five.amount);
    }
}

Eclipseコンパイルエラーで、自動的に作成したターゲットクラス

package star;

public class Dollar {
    public int amount;
    public Dollar(int amount) {}
    public void times(int multiplier) {}
}

重複を取り除く

  • 仮定を立てながら行う
  • テスト中のデータとコードの中にデータが重複
  • アサーションにたどり着く方法を考えていく
  • ひとつひとつ仮定踏んで、修正していく


最終的なターゲットクラス
スタートは、public int amount = 5*2;から

package star;

public class Dollar {

	public int amount;
	public Dollar(int amount) {
		this.amount = amount;
	}
	public void times(int multiplier) {
		amount *= multiplier;
	}
}

仮実装をしながら、細かく修正しながら、すばやくグリーンに。


TDDは小さな手順で作業することではなく、小さな手順での作業が可能になること・・・うん?わかるよーなわからないような。


さらっと書いてるけど、結構いろんなことを言ってるな、この1章。