tl;dr
タイトルで述べたように、テスト対象のクラスがライブラリ クラスのラッパーであり、多くの静的依存関係やデータベース接続を使用している可能性がある場合、この親クラスを手で置き換えるのがベスト プラクティスですか?書かれたスタブ?
詳細
Context は、Yii PHP Web フレームワーク用のウィジェット ツールキットのユニット テスト スイートです。テスト対象のシステムは 12,000 行のレガシー PHP 5.3 コードであり、最初に特性評価テストを書きたいと思います。なぜなら、PHP の自動リファクタリングは phpStorm でもかなりうまくいかないからです。CWidget
クラスのエクステンダーのテストに特に興味があります。
これは PHP であるためrequire_once
、単体テストごとにソース ファイルを自由に組み合わせることができるため、完全に偽の環境を構築することは問題ありません。
Martin Fowler のRefactoringと Michael Feather のWorking Effectively with Legacy Codeのコピーを持っているので、もしあれば、誰かが正確なテクニックを教えてくれるかもしれません。