我只是试图存根该方法,但得到了null指针异常。我有点茫然。
我的方法:
OauthStatus validate(HttpServletRequest request,
boolean accessTokenRequired) throws OauthProviderException;
Stub是:
Mockito.when(oauthProviderMock.validate((MockHttpServletRequest) Mockito.anyObject(), (boolean)Mockito.anyBoolean())).
thenReturn(new OauthStatus());
我认为mocking但是抛出nullpointer异常并没有错。
知道这里发生了什么吗?
删除对(MockHttpServletRequest)
和(boolean)
的强制转换,使其看起来像这个
Mockito.when(oauthProviderMock.validate(Mockito.any(HttpServletRequest.class), Mockito.anyBoolean())).
thenReturn(new OauthStatus());
根据anyObject API,它将返回null
,因此您可能在此处看到您的NPE
。
根据anyBoolean API,它将返回false
,因此不需要强制转换。
Work around通过使用匿名类而不是Mockito以编程方式模拟方法。
例如:
oauthProvider = new OauthProvider(){
validate( HttpServletRequest req, boolean flag) throws Exception{
throw new RuntimeException();
}
};