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 所有映射的存根,而不是仅使用该枚举值来更新存根。
我正在使用 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 所有映射的存根,而不是仅使用该枚举值来更新存根。