Wiremock заглушки нескольких URL-адресов с кодом 500 - PullRequest
1 голос
/ 30 января 2020

Я провожу некоторые тесты, в которых мое приложение берет значение из одного начального 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

Это означает, что после первого вызова Остальные окурки не рассматриваются. Как я могу это исправить?

...