ほとんどのSO関連の質問(here,hereおよびthere)を読んでいます。 最後の質問は、静的メソッドをユニットテスト可能と呼び出すコードを作るための4つの選択肢を提案しています。 私は私の特別なケースについて質問したい:私たちは45の静的クラス(状態なし、静的メソッド)を含む「ビジネスロジックレイヤー」または「ルール」プロジェクトを持っています。さらに、それらは自分自身で簡単にテスト可能ではありません。ほとんどの人がデータベースとファイルシステムにアクセスします。とにかくデータベースにアクセスするために、いくつかのMapperクラス(すべてのマッパーはシングルトン)の一意のインスタンスを使用します。 ユニットテストをしようとするたびに、私はこの壁にぶつかります。最大の問題は、これが非常に重要なコードであり、変更が非常に慎重に計画されることです。 私の質問:このユニットをテスト可能にするにはどうすればよいですか?私は45のインタフェースを書いて、依存性注入を使うべきですか?それでも、どのようにマッパーをスタブ/モックするのですか?静的メソッドを呼び出すユニットテストコード
PS:私は、 『レガシーコードの操作』マイケル羽を読んでいるので、直接の言及は、(歓迎されている他の本すぎ:)
編集:一部の人が言ったので、解決策は、プラットフォーム依存であるかもしれません
それは静的メソッドをテスト可能にすることを世話しますが、それを呼び出すコードはどうですか?別の言葉では、ちょうど好奇心が強い...「GI」は何らかの種類の署名、または略語ですか? (私はアルゼンチン出身です) –
G1 == Good Luck :) Mapperを使用するコードでは、シングルトンによってgetInstanceの代わりにファクトリインターフェイスを使用するように適合させる必要があります。 – AlexTheo