2017-09-01 2 views

答えて

0

Aをテストする代わりに、それから派生したクラスをテストできます。TestableAとしましょう。 AText()virtualを作成し、オーバーライドでBのモックを使用してください。また、静的メソッドでクラスをモックする方法の詳細については、this questionをご覧ください。

それにもかかわらず、最善の解決策は、インターフェース(例えばInterfaceB)を導入し、Text()にそれを注入することによってAB間の既存の緊密な依存性を破壊することであろう。 SMethod()は、インターフェイスの(非静的な)メンバーになります。プロダクションでは、ActualBActualB::SMethod()とし、staticB::SMethod()とします。テストでは、テストのニーズに合わせてMockB::SMethod()を使用します。

関連する問題