0

メソッドをスタブしようとしていますが、null ポインター例外が発生します。ここで何が起こっているのか、私はちょっと空白です。

私の方法:

OauthStatus validate(HttpServletRequest request, 
            boolean accessTokenRequired) throws OauthProviderException;

スタブは次のとおりです。

Mockito.when(oauthProviderMock.validate((MockHttpServletRequest) Mockito.anyObject(), (boolean)Mockito.anyBoolean())).
                thenReturn(new OauthStatus());

モックに問題はありませんが、nullpointer 例外がスローされます。

ここで何が起こっているのか分かりますか?

4

2 に答える 2

0

キャストを削除して(MockHttpServletRequest)(boolean)次のようにします

Mockito.when(oauthProviderMock.validate(Mockito.any(HttpServletRequest.class), Mockito.anyBoolean())).
        thenReturn(new OauthStatus());

anyObject APIによると、それが返さnullれるため、おそらくNPEここに表示されます。

anyBoolean APIによると、返さfalseれるため、キャストする必要はありません。

于 2012-07-31T07:37:31.720 に答える
-2

回避策は、Mockito の代わりに匿名クラスを使用して、プログラムでメソッドをモックすることです。

元:

  oauthProvider = new OauthProvider(){

      validate( HttpServletRequest req, boolean flag) throws Exception{
           throw new RuntimeException();
       }

 };
于 2012-07-31T20:19:37.183 に答える