Wiremock:使用 JSON 设置要模拟的唯一标识符

Wiremock: set unique identifier to mock using JSON

我正在使用 Wiremock,在测试期间我想编辑一个在启动时在 /mappings 目录(默认模拟)内的 JSON 文件中定义的模拟。

我知道我可以在 JSON 文件中定义 UUID,但我正在寻找人类可读的东西(在测试中提及无意义的 UUID 可能不是一个好主意) .我看到我可以定义一个名字,但是我如何使用它的名字来编辑模拟?

谢谢

您可以结合使用 metadata 和 WireMock 的 Admin API。

...
"metadata": {
    "name": "My Mapping"
}
...

然后使用 find stub mappings by metadata,您可以检索匹配对象的数组。

POST /__admin/mappings/find-by-metadata

{
    "matchesJsonPath" : {
      "expression" : "$.name",
      "contains" : "My Mapping"
    }
}

您可以解析特定 UUID 的响应,最后 update a stub mapping by UUID

或者,您可以查询管理员 API 以获取所有映射并找到与您想要的匹配的映射,但我发现按元数据过滤更容易使用。

此外,根据您用于测试的语言,您可以制作类似枚举的东西,将人类可读的名称(“我的映射”)映射到 UUID,然后跳过必须找到metadata/parse 所有映射的存根,而不是仅使用该枚举值来更新存根。