С WireMock.Net, как сделать статическое отображение для тела запроса JSON? - PullRequest
0 голосов
/ 25 июня 2018

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

Вместо того, чтобы создавать длинные строки шаблона JsonPathMatcher для тела запроса, я надеялся использовать тег BodyAsJson Reqest, чтобы просто определить точное тело запроса, которому я хочу соответствовать.

Кажется, что это нормально, но не работает, как я ожидал. Я думаю, что под капотом WireMock.Net десериализует JSON в файле отображения и в запросе, а затем выполняет равенство ссылок для двух результирующих объектов, чтобы увидеть, являются ли они одинаковыми, что, естественно, не является.

Есть ли лучший способ сделать эту работу?

1 Ответ

0 голосов
/ 26 июня 2018

Новая версия из WireMock.Net (1.0.4.x) будет поддерживать настоящий объект JSON в модуле соответствия тела. Больше не нужно определять экранированную строку.

Отображение (в формате JSON) будет выглядеть следующим образом:

{
    "Guid": "debaf408-3b23-4c04-9d18-ef1c020e79f3",
    "Request": {
        "Path": {
            "Matchers": [
                {
                    "Name": "WildcardMatcher",
                    "Pattern": "/jsonbodytest2",
                    "IgnoreCase": false
                }
            ]
        },
        "Methods": [
            "post"
        ],
        "Body": {
            "Matcher": {
                "Name": "JsonMatcher",
                "Pattern": {
                    "x": 42,
                    "s": "s"
                }
            }
        }
    },
    "Response": {
        "StatusCode": 200,
        "Body": "{ \"result\": \"jsonbodytest2\" }"
    }
}
...