0

我只是想存根方法但得到空指针异常。我有点空白这里发生了什么。

我的方法:

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

存根是:

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

我看到模拟没有错,但会引发空指针异常。

知道这里发生了什么吗?

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 回答