ずーっと前に参加したテスト駆動開発入門
和田さん(@t-wada)の話した内容を、反省(チームに全く導入できていない)含めて残しておきます。
TDDの目的
動作する綺麗なコード!!
TDDのサイクル
1 次の目標を考える
2 目標を示すテストを書く
3 テストを実行して失敗させる
4 目的のコードを書く
5 3で書いたテストを成功させる
6 テストが通るまでリファクタリングを行う
7 1~6を繰り返す
一つ一つ片付けていく
TDDのこころ
・1つずつ少しづつ段を小さく
・素早くまわす(フィードバックサイクル)
・自分が最初のユーザ
自分が作ったメソッドを自分が利用せず提供するケースが存在する
そのままでは自分のメソッドの改善点に気づかない
・不安をテストに
手が止まるときは何が問題なのかを考える
・命綱を編む
TDDのメリット
最大の理由は心理的なもの
応用
テストの無いコードが既にたくさんある
#レガシーコード改善ガイド
既にデータの入ったデータベースがある
#データベースリファクタリング
FragileTests
SlowTests
#xUnitTestPatterns
#実践駆動開発
一つ覚えて帰った