没有参数的springboot WireMock mock

Posted

技术标签:

【中文标题】没有参数的springboot WireMock mock【英文标题】:springboot WireMock mock without parameters 【发布时间】:2020-08-28 01:13:59 【问题描述】:

我有这个运行良好的模拟

stubFor(WireMock.get("/varela/offerszones?channel=123").willReturn(aResponse()
                .withStatus(200)
                .withHeader("content-type", "application/json")
                .withBodyFile("zones_config.json")));

但我想知道是否可以在没有参数的情况下模拟它,因为我已经尝试过但它不起作用

stubFor(WireMock.get("/varela/offerszones").willReturn(aResponse()
                .withStatus(200)
                .withHeader("content-type", "application/json")
                .withBodyFile("zones_config.json")));

【问题讨论】:

尝试使用 WireMock.get("/varela/offerszones*") - 其中 * 将匹配之后的任何内容 我试过但没用 【参考方案1】:

在 WireMock 中很难记住 URL 匹配。查看Request Matching documentation 了解更多信息。

您应该能够平等使用 Java 中的 urlPathEqualTo(JSON 中的 "urlPath")仅匹配 URL 路径。

stubFor(WireMock.get(urlPathEqualTo("/varela/offerszones"))
    .willReturn(aResponse()
    .withStatus(200)
    .withHeader("content-type", "application/json")
    .withBodyFile("zones_config.json")));

其他选项有:(列为 Java / JSON)

urlEqualTo / "url":路径和查询的相等匹配 urlMatching / "urlPattern": 正则表达式匹配路径和查询 urlPathMatching / "urlPathPattern":仅在路径上匹配正则表达式

【讨论】:

以上是关于没有参数的springboot WireMock mock的主要内容,如果未能解决你的问题,请参考以下文章

使用WireMock伪造REST服务

SpringBoot18 SwaggerAPI接口文档生成WireMock模拟后台数据

Wiremock 请求匹配两个查询参数之间的比较

在春季启动测试中使用wiremock随机端口设置属性

使用 MockServer 的 Wiremock 返回模拟的 http 响应时尝试更新嵌入式数据库

难以使用Wiremock,微服务和外部https服务 - 没有捕获流量