
11.6
まとめ
215
レッド
次に加えようとしている変更のためのテストを書く。テストを実行し、失敗することを確認す
る。
グリーン
テストに合格するまで、定義を実装してテストする。
リファクタリング
新旧の定義を適切に構造化されたものにするために改良を加える。
先にテストを書くようにすると、否応なく書こうとしているコードについて考えることになる。何を
すべきか、どのようにして動作していることを確かめるか、入出力は何か、どのようなエラーが起き得
るか、それらをどのように処理すべきか。明確なテストを書くことができたら、テストに合格する変更
を実装するのは簡単なはずだ。
コードを書く前にテストを実行すると、それが有効なテストだということが証明される。変更点を実
装する前にテストに合格するなら、テストについて再考が必要なのは明らかだ。
「リファクタリング」は、ふるまいを変更せずに既存コードを改善する変更を加えることだ。これは、
コードの品質を高めるための重要なテクニックで、自動テストは、うっかり動作しているコードを壊し
ていないことを保証してくれるセーフティネットである。
1
度 に ひ と つ の テ スト
TDD
を導入しようとして苦しんでいたチームがあった。苦労していたのは、システムの
コーディングを始める前に、コンポーネントのすべてのテストを書いておかなければならない
と思っていたからだ。
TDD
は、ウォーターフォールの順序を変えるという話ではない。
1
度に
ひとつの小さな部品に向き合ってテストとコードをいっしょに書くという考え方である。 ...