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

削除された内容 追加された内容
思案猫 (会話 | 投稿記録)
→‎開発サイクル: 曖昧な用語の置き換え
思案猫 (会話 | 投稿記録)
→‎開発サイクル: 実装の意味に近い設計で、設計と実装の用語の区別が曖昧で混乱を招くため記述を削除
17行目:
**テストに要求される値そのものをハードコーディングする(Fake It)。
**Fake Itの後に次のリファクタリングの段階へ進めないような漠然としている場合は、さらに別のデータを用いたテストを追加し、その2つのテストの共通点を見出して助けとする(Triangulate)。
*テストがパスすることを保持しつつ、コード本体やそれとテストの間の明示的・暗黙的重複を取り除く(リファクタリング)。通常、リファクタリングとはコードの意味を変えずに再構築することを言うが、ここでは、「コードの意味」はテストが通ることを言う。リファクタリングで取り除く対象となる重複は、形式的なものだけではなく意味的なものも含む。例えば、Fake Itでハードコーディングしたものはおおよそ、実際にはどこからか得られるはずのパラメータの値を、それとは別に値を用いて算出したものであり、これを重複と見なす。重複を取り除くことでロジックが抽出される。内部構造に対する設計の選択・変更の決定もこの段階で行われる。
*リストから実装した項目を削除する。作業中にテストの必要性が判明した他の項目に、実質的に振り変わるかもしれない。