Тест JUnit для пустого метода, содержащего обменный вызов RestTemplate - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь написать тестовый класс для одного из моих методов, и я новичок в 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.

Любая помощь будет сильно оценена.

...