Wiremock - 一个文件中的多个存根

Wiremock - Multiple stubs in one file

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

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

但我还是做不到。

目前,我有以下class:

@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 的实例

你知道如何解决这个问题吗? 谢谢。

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

您的选择是:

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

我想我会建议在 mappings/ 目录中放置不同的映射文件。它允许更清楚地分离您拥有映射的调用。