여기 내 코드입니다. 내가 원하는 것은 3 가지 예외를 테스트하는 것입니다. 그러나 지역 변수 restTemplate을 조롱하는 방법을 모르겠습니다.스프링 부트에서 로컬 RestTemplate을 모의 연결하여 연결을 거부하는 방법은 무엇입니까?
내 코드 :
private void setJobInstanceInfo(JobInstance jobInstance, String uri, String group, String jobName) {
RestTemplate restTemplate = new RestTemplate();
TypeReference<HashMap<String, Object>> type = new TypeReference<HashMap<String, Object>>() {
};
try {
String resultStr = restTemplate.getForObject(uri, String.class);
HashMap<String, Object> resultMap = JsonUtil.toEntity(resultStr, type);
setJobInstanceIdAndUri(jobInstance, resultMap);
} catch (RestClientException e) {
LOGGER.error("spark session {} has overdue, set state as unknown!\n {}", jobInstance.getSessionId(), e.getMessage());
setJobInstanceUnknownStatus(jobInstance);
} catch (IOException e) {
LOGGER.error("jobInstance jsonStr convert to map failed. {}", e.getMessage());
} catch (IllegalArgumentException e) {
LOGGER.warn("Livy status is illegal. {}", group, jobName, e.getMessage());
}
}
전화 restTemplate.getForObject(uri, String.class)
은 항상 다음과 같이 예외가 발생하는 경우 :
"I/O error on GET request for url: Connection refused: connect".
를 나는 내가 조롱하고 난 아무것도 반환 할 무엇 problem.That URL을 알고 배고 있다. 그래서 RestClientException 및 IOException과 IllegalArgumentException에 대한이 세 가지 예외를 테스트하는 메소드를 제공 할 수 있습니까?
모든 이유는 아니다 나머지 템플릿을 클래스 변수를 만들고 생성자에서 한 번 인스턴스 나 :
이 그럼 당신은 여기에 설명처럼 나머지 클라이언트 테스트를 쓰기 시작할 수있는 봄 구성이 추가 의존성으로 주입하는 것 조차요? – dev4Fun