Wiremock возвращает успешный или ошибочный ответ от того же сопоставления JSON - PullRequest
0 голосов
/ 07 мая 2020

Я новичок в Wiremock, и хотя я просмотрел документацию, я все еще не полностью об этом подумал.

Я бы хотел узнать ...

Есть ли способ определить в 1 заглушке два поведения - случай успешного ответа и ответ ошибки (или несколько ), например, в случае, если шаблон соответствия тела запроса не был удовлетворен? Поддерживается ли это, или я должен написать отдельные сопоставители запросов для каждого типа недопустимого, например тела запроса? Конечно, в более обобщенном виде.

Если возможно объединить ответ об ошибке и успешный ответ в одной и той же заглушке, JSON не могли бы вы, пожалуйста, дайте мне пример или укажите мне еще один?

1 Ответ

1 голос
/ 08 мая 2020

Указанный пример c (например, шаблон соответствия тела запроса не был удовлетворен?) Можно легко выполнить, используя две разные заглушки с двумя разными приоритетами. Первая заглушка будет иметь более высокий приоритет, более точное совпадение c и возвратит успешный ответ. Вторая заглушка будет иметь более низкий приоритет, по существу, будет перехватывать все остальные вызовы и возвращать ответ об ошибке. чтобы вернуть 200, и любые другие, чтобы вернуть 400 ...

stubFor(get("/success-endpoint").atPriority(1)
    .willReturn(ok("Success response body")));

stubFor(get(urlMatching("/.*")).atPriority(2)
    .willReturn(aResponse().withStatus(400).withBody("Error response body")));

Если вы хотите объединить успешный / ошибочный ответ в одной и той же заглушке, вам нужно проявить немного больше творчества . Если бы код состояния был в теле запроса, вы могли бы получить его с помощью шаблона ответа и вставить в качестве кода состояния ответа. Если бы он не был супер-видимым и вам нужно было использовать что-то еще в запросе, вы могли бы создать преобразователь ответа и использовать его для информирования своего условного ответа. Может быть, СКЭНАР ios - это что-то в твоем переулке. Извините, что остальная часть этого ответа не очень специфична c, а скорее расплывчата, но, не зная, как выглядит ваш запрос / ответ, существует множество жизнеспособных вариантов.

...