Mockitoを使用して、voidメソッドでコールバックオブジェクトを傍受するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/3581754

質問

Mockitoを使用して、Legacy Jaas/LDAPログインモジュールをテストしています。

javax.security.auth.callback.CallbackHandler インターフェイスは関数を定義します。

void handle(javax.security.auth.callback.Callback[] callbacks)

私は期待しています callbacks 含む NameCallback, 、これは、テストに合格するために操作する必要があるオブジェクトです。

これを効果的にock笑する方法はありますか? CallbackHandler?

役に立ちましたか?

解決

関数が戻ってきます void, 、 使用する doanswer()

doAnswer(...).when(mockedObject).handle(any(Callback[].class));

Answer インターセプトを実行すると、 doAnswer, 、例:匿名のクラスとして:

new Answer() {
  public Object answer(InvocationOnMock invocation) {
      Object[] args = invocation.getArguments();
      Mock mock = invocation.getMock();
      return null;
  }}

この場合 args 配列になります Callback[]!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top