WireMock: Stubbing - Как получить объект testClient?

Я хочу протестировать HTTP-запрос / ответ. Поэтому я использую WireMock.

Я хочу заглушить ответ на конкретный запрос: Вот код:

 public class WireMockPersons {

    @Rule
    public WireMockRule wireMockRule = new WireMockRule(8089);

    @Test
public void exactUrlOnly() {
    stubFor(get(urlEqualTo("/some/thing"))
            .willReturn(aResponse()
                .withHeader("Content-Type", "text/plain")
                .withBody("Hello world!")));

    assertThat(testClient.get("/some/thing").statusCode(), is(200));
    assertThat(testClient.get("/some/thing/else").statusCode(), is(404));
}

Код не компилируется из-за отсутствия объекта testClient. Как получить объект testClient?


person a_subscriber    schedule 26.04.2017    source источник


Ответы (1)


testClient - это ваша клиентская библиотека для API, над которым вы насмехаетесь.

Похоже, вы скопировали непосредственно из примеров, которые являются ориентировочными.

Замените testClient библиотекой HTTP по вашему выбору, например HttpClient.

String url = "http://localhost:8089/some/thing";
try (CloseableHttpClient client = HttpClientBuilder.create().build()) {
    HttpGet get = new HttpGet(url);
    HttpEntity entity = client.execute(get).getEntity();
    return  EntityUtils.toString(entity, "UTF-8");
} catch (IOException e) {
    throw new RuntimeException("Unable to call " + url, e);
}
person markdsievers    schedule 27.04.2017