テスト駆動開発についての自分用のメモです。 いまのところ雑多にメモしています。
(2020-02-21更新)
- テストファーストとテスト駆動開発は異なる。
- テスト駆動開発の目標は「動作する綺麗なコード」である。まず動作させ、次に綺麗にする。
- 手順が小さすぎることを気にする必要はない。動作がおかしくなった場合に小さい手順の方が修正作業がしやすい。手順を小さくしていくと適切な大きさがわかる。大きい手順しか作らないと手順の大きさが適切かどうかわからない。
- 素早くグリーンにするために仮実装する。仮実装ではまず定数を返す。その後、本物のコードを得るまで定数を変数で徐々に置き換える。
- 感情(不快感、違和感)をテスト(コード)にする。
- 一度グリーンになったらなるべくグリーンの時間が長くなるように保つ。コードを書き換えている最中でもなるべくテストを動かせるようにする。
- 固定された値は最初は何度かリテラルで書き、後から定数に置き換える。
- コミット単位はレッドで1回、グリーンで1回、リファクタリング中何度か。
- 次に手をつける項目は実装できそうでかつ重要なもの
- ただしFake Itでしかコードを記述できなさそうなものは後回しにする
- 実装できそうなものがない場合は、より小さい粒度の項目を作る