Chapter4: The Seam Model 継ぎ目モデル
Working Effectively with Legacy Code 読書メモ
- Chapter4: The Seam Model 継ぎ目モデル
- 既存のコードにテストを書こうとすると、そのコードがテストのことをほとんど考えてない事に気づく
- テストしやすさを考慮した設計("design for testability")でコードが書いてあればテストしやすい
- しかし、既存のコードをすべて"design for testability"にするアプローチは、コードが多い場合には難しい。
- 別の方法を考えてみたい。
- すべてのプログラミング言語をこの本で網羅することはできないが、ここで概要を書いとく
- A Huge Sheet of Text
- 汎用機のころには一行一行書いては、印刷したり、テストしていた。
- 一行書いただけで、全体が変わる場合はどうやってテストする?
- モジュールは互いに独立しているようでも、実は依存していたりする
- 再利用するの大変
- 汎用機のころには一行一行書いては、印刷したり、テストしていた。
- Seams: 継ぎ目
- Seam Types
- Preprocessing Seams
- Link Seams
- Object Seams
- オブジェクト指向言語で使える方法。メソッドコールしている場合に、そのメソッドを持つクラス/オブジェクトを挿げ替える
- あと、private static メソッドをprotectedに変えるだけで、それを継承するテストクラスを作ってオーバーライドで挿げ替える方法もある。元のソース改変になるが、最小限の変更で依存性を断ち切れる。
- 3つのタイプのSeamをうまく選ぶことが重要。