gpt4 book ai didi

java - Spring Restdocs 响应负载包含可选的空对象列表

转载 作者:行者123 更新时间:2023-11-30 05:35:40 25 4
gpt4 key购买 nike

我的 JSON 响应负载如下所示:

{
"count": 2,
"items": [
{
"k1": "v1",
"k2": []
},
{
"k1": "v2",
"k2": [
{
"name": "joe"
},
{
"name": "alice"
}
]
}
]
}

当我如下编写 Restdocs 时,我收到一个错误,提示 items[].k2 = [] 未记录。

responseFields(
fieldWithPath("count").description("..."),
fieldWithPath("items[].k1").description("..."),
fieldWithPath("items[].k2[].name").description("...")
)

我尝试编写 fieldWithPath("items[].k2[].name").description("...").optional(),但它没有执行任何操作。

最佳答案

这是 Spring REST 文档中的一个错误。感谢您引起我的注意。记录 items[].k2[].name 应该足以使 items[].k2 被视为已记录,因为它没有未记录的内容。我已经开通了this issue因此 REST Docs 的行为可以得到修复。

将字段标记为可选会告诉 REST 文档,即使该字段不存在,测试仍应通过。它对于该字段是否需要记录没有影响。这就是为什么将该字段标记为可选并不能解决该问题。

您可以通过显式记录 items[].k2 来解决该问题:

fieldWithPath("items[].k2").description("...")

或者,如果您不想在文档中添加该字段的条目,您可以告诉 REST Docs 忽略它:

fieldWithPath("items[].k2").ignored()

关于java - Spring Restdocs 响应负载包含可选的空对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56682527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com