Я пытаюсь написать тестовый класс для одного из моих методов, и я новичок в JUnit. Мой класс возвращает void и имеет вызов RestTemplate.exchange к внешней конечной точке.
Я начал пробовать это, но это дает мне исключение NullInsteadOfMockException.
@Test
public void service1test() throws IOException{
ResponseEntity<?> responseEntity = new ResponseEntity<>(HttpStatus.ACCEPTED);
RestTemplate restTemplate = Mockito.mock(RestTemplate.class);
Mockito.verify(restTemplate.exchange(Mockito.anyString(), Mockito.<HttpMethod> any(), Mockito.<HttpEntity<?>> any(), Mockito.<Class<?>> any(), Mockito.<String, String> anyMap()));
}
Вот мой метод, для которого я хочу написать модульный тест.
@Autowired
private RestTemplate restTemplate;
public void service1(String a, String b) {
RestTemplateBuilder restTemplateBuilder = new RestTemplateBuilder();
this.restTemplate = restTemplateBuilder.build();
HttpHeaders headers = new HttpHeaders();
try {
headers.set("ID", ID);
headers.set("secret", secret);
System.out.println(docStoreUrl + itemID);
HttpEntity requestEntity = new HttpEntity<>(null, headers);
ResponseEntity response = restTemplate.exchange(url, HttpMethod.GET, requestEntity, Object.class);
log.info("Status code for get : {}", response.getStatusCodeValue());
if(response.getStatusCodeValue() == 200) {
Object document = (Object) response.getBody();
Class2.service2.execute(document);
}
else {
log.info("Failed to retrieve document due to {}", response.getStatusCodeValue());
}
}
Я новичок в тестировании JUnit и не могу понять, как написать класс Test для преобразования всех строк.
Если на этот вопрос уже дан ответ, укажите мне соответствующий URL.
Любая помощь будет сильно оценена.