当前位置: 首页 > 知识库问答 >
问题:

Wiremock从同一JSON映射返回成功或错误响应

袁何平
2023-03-14

我对Wiremock很陌生,尽管我已经看过了文档,但我仍然没有完全了解它

我想知道的是。。。

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

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

共有1个答案

闽康安
2023-03-14

具体示例(例如,请求的正文匹配模式未得到满足?)可以使用具有两个不同优先级的两个不同存根轻松完成。第一个存根将具有更高的优先级,并且是更具体的匹配项,并返回成功响应。第二个存根的优先级较低,实质上是所有其他调用的总括,并返回失败响应。

例如,如果唯一的区别是您希望对“/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,并使用它来通知您的条件响应。也许场景是你喜欢的。很抱歉,这个响应的其余部分并不是非常具体,而是有点模糊,但不知道您的请求/响应是什么样子,有很多可行的选项。

 类似资料:
  • 在我的服务中,我执行了一个超文本传输协议调用,并将响应返回为可观察的 我订阅了一个组件 这样做实际上是有效的;我可以在控制台中看到对象的转储 当我想从服务返回映射为json的响应时,出现了问题。 我想做他的 但在运行时,我得到了一个模糊的javascript错误(准确地说,这是来自Zone.js) 我已经尝试将返回类型从

  • 这是我的控制器,它将请求映射到以下url

  • 我已经构建了一个使用AJAX提交表单数据的登录脚本。 PHP部分在没有AJAX的情况下运行良好。但是系统不能与AJAX实现一起工作。 它始终显示以下消息,即使 PHP 文件返回 true[正确的用户名 用户名/密码不正确 超文本标记语言Result Div JQuery fn_login.php 有人可以指出代码/实践中的错误吗? 刚刚尝试禁用AJAX,当用户名/密码正确时,PHP文件可以正确回显

  • 我已经用一个REST/HTTP请求模拟示例实现了一个基本的WireMock。服务器代码实现如下。 有了这段代码,我在向Postman发出get请求时得到如下错误(即GET http://127 . 0 . 0 . 1:8089/some/thing)。 无法提供响应,因为此WireMock实例中没有存根映射。 我的设置/代码中缺少什么? 主要功能是: 在“resources/testconfig”

  • 问题内容: 我有以下JS 和以下控制器代码: addarticle()javascript ajax可以运行并将vars发送到服务器并进入db,但是,javascript然后将运行错误函数而不是成功函数。http响应代码是200,我以为它将运行Success函数。有什么建议? 问题答案: 您需要从控制器返回json,因为这是jQuery期望的。您可以返回即 或者,您可以将html设置为数据类型(也

  • 我有一个方法返回。代码如下类所示: 和作为错误。 如何解决此错误