Я провожу некоторые тесты, в которых мое приложение берет значение из одного начального JSON и из него строит URL-адреса и делает запросы к аналогичным конечным точкам.
Сейчас я использую эту функцию для генерации заглушки
private void prepareURL(String URL) {
System.out.println("stubFor: http://localhost:8080" + URL);
stubFor(get(urlPathEqualTo(URL)).willReturn(aResponse()
.withBody(getFileContent(URL))
.withStatus(200)
));
}
Где getFileContent(String)
просто выводит JSON из моей среды тестирования.
Функция, которую я использую для загрузки, следующая:
private void testDownload(String url) throws IOException {
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(CONNECT_TIMEOUT)
.setConnectionRequestTimeout(CONNECT_TIMEOUT)
.setSocketTimeout(CONNECT_TIMEOUT).build();
CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config)
.build();
HttpGet request = new HttpGet(url);
HttpResponse httpResponse = httpClient.execute(request);
System.out.println("Downloading "+url+". Code: " + httpResponse.getStatusLine().getStatusCode());
}
Это тест:
@Test
public void anotherTest() throws IOException {
configureFor("localhost", wireMockServer.port());
prepareURL("/base-repository.json");
prepareURL("/wordpress-1.0-template.json");
prepareURL("/siebel-1.0-template.json");
prepareURL("/siebel-1.1-template.json");
testDownload("http://localhost:8080/base-repository.json");
testDownload("http://localhost:8080/wordpress-1.0-template.json");
testDownload("http://localhost:8080/siebel-1.0-template.json");
testDownload("http://localhost:8080/siebel-1.1-template.json");
}
Дело в том, что когда я запускаю этот тест, я получаю следующую трассировку:
stubFor: http://localhost:8080/base-repository.json
stubFor: http://localhost:8080/wordpress-1.0-template.json
stubFor: http://localhost:8080/siebel-1.0-template.json
stubFor: http://localhost:8080/siebel-1.1-template.json
Downloading http://localhost:8080/base-repository.json. Code: 200
Downloading http://localhost:8080/wordpress-1.0-template.json. Code: 500
Downloading http://localhost:8080/siebel-1.0-template.json. Code: 500
Downloading http://localhost:8080/siebel-1.1-template.json. Code: 500
Это означает, что после первого вызова Остальные окурки не рассматриваются. Как я могу это исправить?