Можно ли передать файл как часть тела запроса, используя WireMock? - PullRequest
2 голосов
/ 18 февраля 2020

Я сейчас пишу интеграционный тест, используя Wiremock. На данный момент я определяю идентификатор и идентификатор организации в качестве параметров. Вместо того, чтобы повторять этот процесс, скажем, для 50 полей, возможно ли вместо этого передать в качестве запроса файл JSON? ie используйте этот файл как тело запроса.

stubFor(post(urlEqualTo("/v1/transaction"))
            .withRequestBody(
                    matchingJsonPath("$.data.id", containing("1")))
            .withRequestBody(matchingJsonPath("$.data.organisation_id", containing("2")))
            .willReturn(aResponse()
                    .withHeader(CONTENT_TYPE, APPLICATION_JSON_VALUE)
                    .withStatus(HttpStatus.CREATED.value())
                    .withBodyFile("create_successful_response.json")));

1 Ответ

3 голосов
/ 20 февраля 2020

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

Заполнители позволяют использовать equalToJson(...) с более слабым соответствием указанных полей c, например

{
  "data": {
    "id": "${json-unit.any-string}",
    "organisation_id": "${json-unit.regex}.*1.*}"
  }
}

Подробнее здесь: http://wiremock.org/docs/request-matching/#placeholders

...