ふたたび1章
真ん中ぐらいまで読んだのですが、J2EE勉強会でのid:t-wadaさんの発表を聞いて、もっときちんと理解しないとと思い、再びはじめから。
当面の目標
- TDDのリズムを身につける
リズム
- テストを追加
- すべてのテストを実行
- 失敗を確認
- 小さな修正
- すべての成功を確認
- 重複を取り除くのためのリファクタリング
状況
- 為替レートのプログラム
はじめに
- 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章。