テストしているクラスが特定のメソッドを呼び出す可能性がある場合、リフレクションを介して知らせるプロジェクトのテストを作成しようとしています。
以下のコード例に注意してください。
class A implements SomeInterface {
@Override
public process(B bInstance) {
if (Math.rand() < 0.5)
bInstance.thirdPartyCall(param1, param2); //I need this!
}
}
このクラスは、process() に渡されたオブジェクトの 1 つからメソッドを呼び出す可能性のあるメソッド process(...) をオーバーライドします。問題のクラスが B() への呼び出しを含むようにコーディングされているかどうか、およびパラメーターが何であるかを調べるために、テストが必要です。呼び出しを文字列としてしか取得できない場合は、それで作業できることを願っています。
A() をオーバーライドするクラスと B() を含むクラスの両方のソース コードがすべてありますが、将来のメンテナンスのためにこれを動的にする必要があります。これは動的にする必要があるため、モックの設定が bInstance からメソッドを呼び出すコードにヒットするかどうかわからないため、モックを作成することはできません。