Я реализовал Перехватчики для RestTemplate
(RestTemplateInterceptor.class):
@Autowired
private RestConfigurations configurations;
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
return builder.additionalInterceptors((ClientHttpRequestInterceptor) (httpRequest, bytes, clientHttpRequestExecution) -> {
HttpHeaders headers = httpRequest.getHeaders();
headers.add("X-API-KEY", configurations.getApiKey());
return clientHttpRequestExecution.execute(httpRequest,bytes);
}).build();
}
Теперь я хочу проверить это.:) Одна попытка выглядит так:
@ExtendWith(SpringExtension.class)
@RestClientTest({RestTemplateInterceptor.class, RestConfigurations.class})
@AutoConfigureMockMvc
@SpringBootTest
class MyTestClass {
public static final String URL = "http://testMe.com/";
@Autowired
MockRestServiceServer mockServer;
@Autowired
RestTemplateBuilder restTemplateBuilder;
@Test
@DisplayName("Should include header X-API-KEY")
void headerShouldContainsXApiKey() throws Exception {
mockServer.expect(requestTo(URL)).andRespond(withSuccess("Hello world", TEXT_PLAIN));
String body = restTemplateBuilder.build().exchange(URL//
, GET, //
null, //
String.class).getBody();
assertThat(body).isEqualTo("Hello world");
mockServer.expect(header("X-API-KEY", ""));
}
Но мне не удалось:
java.lang.AssertionError: Дальнейших запросов не ожидается: HTTP GET http://test.hornbach.de/0 запрос (ов) выполнен.
Кто-нибудь намекнул?Спасибо