使用WireMock.Net,如何为JSON请求body做静态映射?

With WireMock.Net, how to do static mapping for JSON request body?

我正在模拟一个 API,它在请求 body 中大量使用了 JSON,我正在尝试为具有不同 [= 的请求创建可读的静态映射文件=26=] 尸体。

我没有为请求 Body 创建长的 JsonPathMatcher 模式字符串,而是希望利用 Reqest 的 BodyAsJson 标签来定义我想要的确切请求 body匹配。

这似乎解析正常,但没有按我预期的那样工作。我认为 WireMock.Net 正在反序列化映射文件和请求中的 JSON,然后对两个结果 objects 进行引用相等以查看它们是否相同,这他们自然不是。

有没有更好的方法来完成这项工作?

WireMock.Net 的新版本 (1.0.4.x) 将在 Body 匹配器中支持真正的 JSON object。不再需要定义转义字符串。

映射(在 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\" }"
    }
}