我对Wiremock还是很陌生,尽管我阅读了文档,但仍没有完全将其包裹住。
我想找出的是...
是否有一种方法可以在1个存根中定义两个行为-成功响应情况和错误响应(或多个)情况,例如请求的身体匹配模式不满意?是支持的还是我应该为每种无效类型编写单独的请求匹配器,例如请求正文?当然,以更普遍的方式。
如果可以在同一存根JSON中组合错误响应和成功响应,请给我一个示例,或者也将我也指向一个?
特定示例(例如,不满足请求的主体匹配模式?)可以使用具有两个不同优先级的两个不同存根来轻松实现。第一个存根将具有更高的优先级,并且具有更具体的匹配,并返回成功响应。第二个存根的优先级较低,本质上是所有其他调用的包,并返回失败响应。
例如,如果唯一的区别是您希望所有对“ / success-endpoint”的调用都返回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")));
如果要在同一存根中组合成功/错误响应,则需要多用一些创造力。如果状态代码在请求正文中,则可以使用“响应模板”获取该代码并将其作为响应状态代码插入。如果它不是超级可见的,并且您需要在请求中使用其他内容,则可以创建一个Response Transformer并将其用于通知您的条件响应。场景可能在您的小巷中。抱歉,此响应的其余部分不是超级特定的,而是模糊的,但是在不知道您的请求/响应是什么样的情况下,有很多可行的选择。