以下の内容はhttps://higepon.hatenablog.com/entry/20081029/1225281140より取得しました。


25. Dependency-Breaking Techniques - Adapt Parameter and Break Out Method Object- WORKING EFFECTIVELY WITH LEGACY CODE (WEwLC)

の 25章 Dependency-Breaking Techniques からテクニック2つ。

マインドマップから再構成したまとめ

1.Adapt Parameter
メソッドをテストしたいが引数を作れない(HttpServletxxxとか)

  1. インターフェースを作る。シンプルに。
  2. プロダクションクラス実装
  3. Fake実装
  4. Fake利用しテスト書く
  5. 新しいパラメータ使って実装

2.Break out Method Object
大きなメソッドがあり、しかもそのメソッドはインスタンス変数に依存している。そのクラスをテストでインスタンス化するのが難しい。

  1. メソッド保持用のクラスを新しく作る
  2. コンストラクタでメソッドの引数を全てうけとる(Preserve Signature)
  3. コンストラクタで受けた引数をインスタンス変数に保持する
  4. 空のメソッド run つくる
  5. run にメソッドコピー
  6. 元のメソッドで run とか呼ぶ
  7. 必要なら元のクラスで Extract Interface

所感

  • Break out Method Object は例のコードでは何を達成しているのか?
    • テストが難しかった draw をテストできるようにしている

リンク

一人読書会 - WORKING EFFECTIVELY WITH LEGACY CODE (WEwLC)


posted with amazlet at 08.10.24
Michael C. Feathers
Prentice Hall
売り上げランキング: 4738
おすすめ度の平均: 5.0
5 設計が悪いシステムの保守でお悩みの方へ




以上の内容はhttps://higepon.hatenablog.com/entry/20081029/1225281140より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14