Wiremock Return 来自同一 JSON 映射的成功或错误响应

Wiremock Return Success or Error Response from the same JSON Mapping

我是 Wiremock 的新手,尽管我已经阅读了文档,但我仍然没有完全理解它。

我想知道的是...

有没有办法在 1 个存根中定义两种行为 - 成功响应案例和错误响应(或多个)案例,以防万一请求的正文匹配模式不满足? 是否支持,或者我应该为每种类型的无效编写单独的请求匹配器,例如请求正文?当然以更普遍的方式。

如果可以在同一个存根中组合错误响应和成功响应JSON,请给我举个例子或者也给我指一个例子好吗?

使用具有两个不同优先级的两个不同存根可以很容易地完成具体示例(例如请求的正文匹配模式不满足?)。 第一个存根将具有更高的优先级并且是更具体的匹配和 return 成功响应。第二个存根将具有较低的优先级,本质上是所有其他调用的包罗万象,并且 return 失败响应。

例如,如果唯一的区别是您希望对“/success-endpoint”的所有调用都是 return 200,而任何其他调用 return 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")));

如果您想将 success/error 响应合并到同一个存根中,您需要发挥更多的创造力。如果状态代码在请求正文中,您可以使用响应模板获取它并将其作为响应状态代码插入。如果它不是超级可见并且您需要在请求中使用其他东西,您可以创建一个 Response Transformer 并使用它来通知您的条件响应。也许 Scenarios 适合您。抱歉,此回复的其余部分不是非常具体,而是有点含糊,但在不知道您的 request/response 是什么样子的情况下,有很多可行的选择。