Я пишу некоторые модульные тесты для шаблона отдыха, который выполняет 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));
}
}