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

问题描述 投票:0回答:1

我对Wiremock还是很陌生,尽管我阅读了文档,但仍没有完全将其包裹住。

我想找出的是...

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

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

testing mocking wiremock stubbing wiremock-standalone
1个回答
0
投票

特定示例(例如,不满足请求的主体匹配模式?)可以使用具有两个不同优先级的两个不同存根来轻松实现。第一个存根将具有更高的优先级,并且具有更具体的匹配,并返回成功响应。第二个存根的优先级较低,本质上是所有其他调用的包,并返回失败响应。

例如,如果唯一的区别是您希望所有对“ / 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并将其用于通知您的条件响应。场景可能在您的小巷中。抱歉,此响应的其余部分不是超级特定的,而是模糊的,但是在不知道您的请求/响应是什么样的情况下,有很多可行的选择。

© www.soinside.com 2019 - 2024. All rights reserved.