InvocationContextをパラメータとしてメソッドのユニットテストを作成しようとしています。より具体的には、メソッドのシグネチャと本質があります。ユニットテスト用のInvocationContextのインテンスを取得する方法
@AroundInvoke
public Object autoLogMethodCall(final InvocationContext context) throws Exception {
String className = context.getClass().getSimpleName();
String packageName = context.getClass().getPackage().getName();
String methodName = context.getMethod().getName();
// Some logging stuff that is the target of actual testing
}
ご覧のとおり、特定のメソッド呼び出しの基本的なロギングに使用するインターセプタメソッドです。
次に、ログされたメッセージが適切にフォーマットされることをテストするユニットテストがあります。しかし問題は、私がInvocationContextのインスタンスを作成してテスト用のパラメータとして渡せないことです。
私は以下の模擬試しを試みました。
しかし、動作しません。
原因:
Tests in error: AutoLoggingTest.testAutoLogger:25 » MissingMethodInvocation.
when() requires an argument which has to be 'a method call on a mock'.).
適切にモックを行う方法上の任意のアドバイスはありますか?