【问题标题】:Wiremock - Multiple stubs in one fileWiremock - 一个文件中的多个存根
【发布时间】:2020-12-09 23:28:29
【问题描述】:

我正在尝试将多个存根组合到一个 JSON 文件中。

我已经准备好阅读这篇文章: Load wiremock stub files 还有这个https://github.com/tomakehurst/wiremock/issues/987https://github.com/tomakehurst/wiremock/issues/987

但我仍然无法让它工作。

目前,我有以下课程:

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureWireMock(port = 0, stubs = "classpath:/stubs/mappings", files = "classpath:/stubs")
public class ConfigurationTest {

@Autowired
  protected WireMockServer wireMockServer;

}

在我的test/java/resources 文件夹中,我有:

mappings 具有不同存根的文件夹

我想要一个包含mappings 中所有存根的文件。

我尝试在mappings 下创建一个.json 文件,如下所示:


{
  "mappings" : [{
    
   ]}
}

但我得到以下异常

Unrecognized field "mappings" (class com.github.tomakehurst.wiremock.stubbing.StubMapping), not marked as ignorable

如果我尝试一个启动数组的 json,我也有一个异常

无法在 START_ARRAY 标记中反序列化 java.lang.String 的实例

您对如何解决此问题有任何想法吗? 谢谢。

【问题讨论】:

  • 您使用的是最新的 WireMock 版本吗?

标签: wiremock


【解决方案1】:

您的问题是 mappings 在服务器启动时不是 WireMock 识别的字段。本质上,当 WireMock 启动并查看 mappings/ 目录时,它希望每个映射都是一个单独的文件。 WireMock 接受某些字段为有效字段,mappings 不是其中之一。在对 WireMock 服务器执行 POST 时,您只能通过 mappings 数组添加多个映射。

您的选择是:

  • mappings/ 目录中有多个映射文件,以便 WireMock 在启动时自动注册这些映射
  • 在没有映射的情况下启动 WireMock 服务器后,使用您的 mappings 数组作为有效负载 (source) 对 /__admin/mappings/import 执行 POST

我想我会建议在 mappings/ 目录中有不同的映射文件。它可以更清晰地区分您拥有映射的调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多