Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HttpsStatusCodeException返回null:Spring引导_Java_Spring Boot_Junit_Mockito - Fatal编程技术网

Java HttpsStatusCodeException返回null:Spring引导

Java HttpsStatusCodeException返回null:Spring引导,java,spring-boot,junit,mockito,Java,Spring Boot,Junit,Mockito,在这里,我使用Junit5,模拟rest模板调用以返回HttpClientErrorException,但会引发空指针异常。我无法理解为什么在指定行返回Null 休息通话 ResponseEntity<Object> obj; try{ obj=restTemplate.postForEntity(url, requestObj, Object.class); }catch(HttpStatusCodeException ex){ ex.getMessag

在这里,我使用Junit5,模拟rest模板调用以返回HttpClientErrorException,但会引发空指针异常。我无法理解为什么在指定行返回Null

休息通话

ResponseEntity<Object> obj;
try{
     obj=restTemplate.postForEntity(url, requestObj, Object.class);    
}catch(HttpStatusCodeException ex){

    ex.getMessage();

   throw new CustomError(ex.getStatusCode()); //ex.getStatusCode is Null and throws Null Pointer Exception
}catch(Exception ex){
  throw....
}

有两个选项可以解决此问题,您需要提供
HttpClientErrorException
的模拟及其使用的方法,或者需要将exception对象的实例传递给throw语句

    HttpClientErrorException mockedException = mock(HttpClientErrorException.class);
    when(mockedException.getStatusCode()).thenReturn(HttpStatus.NOT_FOUND);
    ...
    when(restTemplate.postForEntity(anyString(),any(),eq(Object.class)))
.thenThrow(mockedException);

    HttpClientErrorException mockedException = mock(HttpClientErrorException.class);
    when(mockedException.getStatusCode()).thenReturn(HttpStatus.NOT_FOUND);
    ...
    when(restTemplate.postForEntity(anyString(),any(),eq(Object.class)))
.thenThrow(mockedException);
when(restTemplate.postForEntity(anyString(),any(),eq(Object.class)))
.thenThrow( new HttpClientErrorException(HttpStatus.NOT_FOUND));