TDD Boot Campさんのテスト駆動開発について解説している動画がわかりやすく、参考になったので要点だけをまとめようと思います。
動画の内容はこちら
僕の知識レベル(参考にしてください)
- Railsを学んでいる初心者
- 基本的なCRUDアプリが作れる程度
- テスト駆動開発にはこの動画が初めて
あくまで僕なりのまとめなので、ぜひ本編を見てくださいね。
テスト駆動開発のゴール
「動作する綺麗なコード」を目指すのを前提にテスト駆動開発をする
テスト駆動開発7STEP
- 次の目標を考える
- その目標を示すテストを書く
- そのテストを実行させて失敗させる(RED)
- 目的のコードを書く(最短で成功させるようなコード→明確)
- 2で書いたテストを成功させる(GREEN)
- テストが通るままでリファクタリングする(Refactor)
- 1~6を繰り返す
こんな感じでRED→GREEN→Refactorを繰り返していくわけです。
テストの関数の中身(3aパターン)
- 準備
- 実行
- 検証(1番に書く)&& (8割は値の比較)
- (後片付け)
TODO(問題を小さく分解する)はテスト容易性+重要度
- 両方高、
- 両方低
で分けていく
TDD(テスト駆動開発)のスキル
- 問題を小さく分解する
- 歩幅を調整する
- テスト→仮実装→三角測量→実装
- テスト→仮実装→実装
- テスト→明白な実装
- テストの構造化とリファクタリング
- テストコードは仕様書になるようにする
- 未来の(3年後の自分)でも意図がわかるのか(特にいらないコードは消しておく)