32

レガシー JAAS/LDAP ログイン モジュールをテストするために mockito を使用しています。

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

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

callbacksこれはNameCallback、テストに合格するために操作する必要があるオブジェクトです。

これを効果的にモックする方法はありCallbackHandlerますか?

4

1 に答える 1

41

を返す関数には、 doAnswer()voidを使用します。

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[]!

于 2010-08-27T06:26:15.843 に答える