gpt4 book ai didi

javascript - 如何测试 Postman 中是否缺少(可能)嵌套的 JSON 属性?

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

我想测试嵌套属性“x”是否存在

如果响应如下所示,则测试必须失败

答:

{
"first": 1,
"second": {
"one": 1,
"two": 2,
"three": {
"x": 1,
"y": 2
}
}
}

但对于下面的例子,它必须通过:

乙:

{
"first": 1,
"second": {
"one": 1,
"two": 2,
"three": {
"y": 2
}
}
}

C:

{
"first": 1,
"second": {
"one": 1,
"two": 2
}
}

D:

{
"first": 1
}

当然。我可以使用 pm.expect(object).to.not.have.property("x") 来测试是否存在。但这并非对所有情况都有帮助。

例如,我的 PostMan 测试代码:

pm.test("(nested)property 'x' not available", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.second.three).to.not.have.property("x")
});

对于情况 A 和 B 非常有用,但对于 C 和 D 则不行,因为属性的父“second”或“three”可以是未定义的。但我不想测试是否缺少它们,因为它不是这个特定测试的目标。

是否有任何 BDD Chai 函数提供此功能,或者我是否被迫为这种情况实现递归辅助函数?

最佳答案

您可以使用内置的 Lodash 函数来进一步分解数据,而不是尝试在 pm.expect() 语句中完成所有操作。

_.get() 函数可能是探索它的有用函数 - https://lodash.com/docs/4.17.11#get

关于javascript - 如何测试 Postman 中是否缺少(可能)嵌套的 JSON 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56181889/

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