Ответ нулевого значения шаблона Rest в тесте getForEntity Mockito - PullRequest
0 голосов
/ 28 октября 2019

Я пишу некоторые модульные тесты для шаблона отдыха, который выполняет http-вызовы. У меня проблема с моим шаблоном отдыха, возвращающим нулевое значение. Ниже показано, как я создал шаблон отдыха. После этого у меня есть методы http, которые необходимо повторить в случае тайм-аута. И последнее, это модульный тест, который я пишу. Я смущен относительно того, почему нулевая ошибка для остальных шаблонов. Любой совет, почему я получаю нулевые значения, был бы полезен.

@Bean
    public RestTemplate restTemplate() {
        return new RestTemplateBuilder()
                .setConnectTimeout(Duration.ofSeconds(10))
                .setReadTimeout(Duration.ofSeconds(10))
                .build();
   }

Метод Http при повторной попытке

public ResponseEntity getForEntity(URI uri, Class c) {
    return retryTemplate.execute(retryContext -> {
        return restTemplate.getForEntity(uri, c);
    });
}

Модульный тест

public class RestTemplateTest {

@Mock
private RestTemplate restTemplate;

String testUrl = "http://localhost:8080";
URI testUri= new URI(testUrl);


@Test
public void getForEntity() {
    ArgumentCaptor<URI> argument = ArgumentCaptor.forClass(URI.class);

    doReturn(new ResponseEntity<>("ResponseString", HttpStatus.OK))
            .when(restTemplate).getForEntity(any(URI.class), eq(String.class));

    assertThat(restTemplate.getForEntity(testUri, RestTemplates.class), is(HttpStatus.OK));

    verify(restTemplate).getForEntity(argument.capture(), eq(String.class));
    assertThat(argument.getValue().toString(), is(testUri));
}

}

...