我只是试图将该方法存根,但获得空指针异常。我有点空白这里发生了什么。
我的方法:
OauthStatus validate(HttpServletRequest request,
boolean accessTokenRequired) throws OauthProviderException;
和Stub是:
Mockito.when(oauthProviderMock.validate((MockHttpServletRequest) Mockito.anyObject(), (boolean)Mockito.anyBoolean())).
thenReturn(new OauthStatus());
我发现在模拟中没有错,但抛出了nullpointer异常。
知道这里发生了什么吗?
答案 0 :(得分:0)
将您的演员表移至(MockHttpServletRequest)
和(boolean)
,使其看起来像这样
Mockito.when(oauthProviderMock.validate(Mockito.any(HttpServletRequest.class), Mockito.anyBoolean())).
thenReturn(new OauthStatus());
根据anyObject API,它会返回null
,因此您可能会在此处看到NPE
。
根据anyBoolean API,它会返回false
,因此不需要投射。
答案 1 :(得分:-2)
解决方法是通过使用匿名类而不是Mockito以编程方式模拟方法。
例如:
oauthProvider = new OauthProvider(){
validate( HttpServletRequest req, boolean flag) throws Exception{
throw new RuntimeException();
}
};