9. I Can't Get This Class into a Test Harness - WORKING EFFECTIVELY WITH LEGACY CODE (WEwLC)

Working Effectively With Legacy Code の 9章 I Can't Get This Class into a Test Harness。

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

Test Harness でクラスを使えない

  • いらいらパラメータ
    • コンストラクタに引数を渡さないといけない
      • Extract interface
      • Pass null
    • 隠れた依存
      • コンストラクタでメール関連の処理
        • コンストラクタにパラメータ追加して外から渡そう
  • でかいコンストラクタ
    • でかいコンストラクタでオブジェクトを作り、さらにそれを元にオブジェクトを作っている
      • パラメータ追加ではできないのでセッタを作ってあとから変更
  • いらいらグローバル依存
    • あれ?いつの間にかシングルトンの話に。
    • テストの時はシングルトンの中身を変えられるように
  • Include 依存
    • テスト用の実体をリンクする
    • これよく分からなかった。

所感

この章はとても長かった。
消化不良感が否めない。特定のテクニックが後方参照しすぎているからかな。
自分のモチベーションの低下とかが原因だったらいやだなあ。