Модульное тестирование - проволочная проверка подтверждает сбой с ошибкой соединения - PullRequest
0 голосов
/ 27 февраля 2019

Я тестирую приложение с пружинной загрузкой и использую заглушки для подключения внешнего интерфейса API.В одном тестовом примере я хочу убедиться, что моя заглушка вызывается ровно один раз, но происходит сбой с ошибкой соединения.

Мой тестовый файл:

@SpringBootTest
@AutoConfigureWebTestClient
@ActiveProfiles("test")
class ControllerTest {

    @Autowired
    private lateinit var webClient: WebTestClient

    private lateinit var wireMockServer: WireMockServer

    @BeforeEach
    fun setup() {
        wireMockServer = WireMockServer(8081)
        wireMockServer.start()
        setupStub()
    }

    @AfterEach
    fun teardown() {
        wireMockServer.stop()
    }

    // Stub for external API
    private fun setupStub() {
        wireMockServer.stubFor(
        WireMock.delete(WireMock.urlEqualTo("/externalApiUrl"))
            .willReturn(
                WireMock.aResponse()
                    .withHeader("Content-Type", "application/json")
                    .withStatus(204)
                    .withBodyFile("file.json")
            )
    )
    }

    @Test
    fun test_1() {

        val email = "some-email"
        val Id = 123

        webClient.post()
        .uri { builder ->
            builder.path("/applicationUrl")
                .queryParam("email", email)
                .queryParam("id", Id)
                .build()
        }
        .exchange()
        .expectStatus().isOk

        WireMock.verify(exactly(1), WireMock.deleteRequestedFor(WireMock.urlEqualTo("/externalApiUrl")))
}

Когда я запускаю этот тест, яполучить следующую ошибку:

org.apache.http.conn.HttpHostConnectException: Соединиться с localhost: 8080 [localhost / 127.0.0.1, localhost / 0: 0: 0: 0: 0: 0:0: 1] сбой: соединение отклонено (соединение отклонено)

Пожалуйста, дайте мне знать, где я делаю неправильно.Заранее спасибо.

1 Ответ

0 голосов
/ 06 марта 2019

Вам необходимо выполнить контрольный вызов на вашем конкретном сервере, используя что-то вроде wireMockServer.verify() вместо WireMock.verify().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...