「テスト駆動開発」の版間の差分

削除された内容 追加された内容
Luckas-bot (会話 | 投稿記録)
m r2.7.1) (ロボットによる 追加: ar:التطوير الموجّه بالفحص
編集の要約なし
17行目:
**実装が自明な場合(1分程度で書ける場合)はそれを記述する(Obvious Implementation)。
**テストに要求される値そのものをハードコーディングする(Fake It;仮実装)。
**Fake Itの後に次のリファクタリングの段階へ進めないような漠然としている場合は、さらに別のデータを用いたテストを追加し、その2つのテストの共通点を見出して助けとする(Triangulate;[[三角測量]])。
*テストがパスすることを保持しつつ、コード本体やそれとテストの間の明示的・暗黙的重複を取り除く(リファクタリング)。通常、リファクタリングとはコードの意味を変えずに再構築することを言うが、ここでは、「コードの意味」はテストが通ることを言う。リファクタリングで取り除く対象となる重複は、形式的なものだけではなく意味的なものも含む。例えば、Fake Itでハードコーディングしたものはおおよそ、実際にはどこからか得られるはずのパラメータの値を、それとは別に値を用いて算出したものであり、これを重複と見なす。重複を取り除くことでロジックが抽出される。
*リストから実装した項目を削除する。作業中にテストの必要性が判明した他の項目に、実質的に振り変わるかもしれない。