【发布时间】:2021-12-16 15:32:33
【问题描述】:
我正在使用 Wiremock,并且在测试期间我想编辑在启动时在 /mappings 目录内的 JSON 文件中定义的模拟(默认模拟)。
我知道我可以在 JSON 文件中定义 UUID,但我正在寻找人类可读的东西(在测试中提及无意义的 UUID 可能不是一个好主意)。我看到我可以定义一个名称,但是如何使用它的名称编辑模拟?
谢谢
【问题讨论】:
标签: wiremock
我正在使用 Wiremock,并且在测试期间我想编辑在启动时在 /mappings 目录内的 JSON 文件中定义的模拟(默认模拟)。
我知道我可以在 JSON 文件中定义 UUID,但我正在寻找人类可读的东西(在测试中提及无意义的 UUID 可能不是一个好主意)。我看到我可以定义一个名称,但是如何使用它的名称编辑模拟?
谢谢
【问题讨论】:
标签: wiremock
您可以结合使用metadata 和 WireMock 的管理 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。
或者,您可以查询 Admin API 的所有映射并找到与您想要的映射匹配的映射,但我发现按元数据过滤更容易使用。
此外,根据您用于测试的语言,您可以制作类似枚举的东西,将人类可读的名称(“我的映射”)映射到 UUID,然后跳过必须通过以下方式找到存根的步骤元数据/解析所有映射,而不是仅使用该枚举值来更新存根。
【讨论】: