使用WireMock.Net,如何为JSON请求正文执行静态映射?

时间:2018-06-25 02:07:27

标签: .net wiremock

我正在模拟一个在请求正文中大量使用JSON的API,并且尝试为具有不同JSON正文的请求创建可读的静态映射文件。

我不是为请求正文创建较长的JsonPathMatcher模式字符串,而是希望利用Reqest的BodyAsJson标签仅定义我要匹配的确切请求正文。

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

是否有更好的方法可以完成这项工作?

1 个答案:

答案 0 :(得分:1)

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\" }"
    }
}