首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >邮递员测试-断言只设置键:对象中的值对,没有意外的返回

邮递员测试-断言只设置键:对象中的值对,没有意外的返回
EN

Stack Overflow用户
提问于 2019-10-16 17:48:28
回答 2查看 1.6K关注 0票数 1

我试图理解如何用postman编写断言,以验证对象中没有额外的键:值对。

例如,下面是一些测试数据:

代码语言:javascript
复制
"testArray": [
{ 
  "key-1" : "value1a"
  "key-2" : "value2a"
},    
{ 
  "key-1" : "value1b"
  "key-2" : "value2b"
},
]

我可以很容易地将断言写到testArray的长度为“2”,我可以验证键值对的实际值是否按预期返回。我有个问题,弄清楚如何找出一个密钥-3没有返回。

现在,如果我知道什么是可能的密钥,我可以验证它是“未定义的”,但是如果我不知道一个潜在的键值对的名称,我想确保我可以断言这些都是我想要的选项。

如果没有一个简单的解决方案,比如能够计算对象中键对的数量,那么我是否需要沿着创建循环的路线遍历数组中的对象,以便将它们与有效值列表进行比较?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-16 18:45:19

我不知道您目前有哪些测试/断言,但您可以扩展这些测试/断言来添加以下内容:

代码语言:javascript
复制
pm.test("Each object should have 2 keys", () => {
    _.each(pm.response.json().testArray, (item) => {
        pm.expect(item).to.be.an('object').and.have.keys(['key-1', 'key-2'])
    })
})

这只是一个基于您所包含的数据的示例,您的数据看起来并不像一个实际的响应,因为它不是有效的JSON,但是我修改了它,以看到测试通过/失败。

这个断言将检查testArray数组中的每个项是否是一个对象,并且它只有应该存在的键。如果要向数据中添加第三个键,断言将失败。

票数 1
EN

Stack Overflow用户

发布于 2019-10-23 16:41:48

嗨,这应该使用Json模式而不是for循环来完成。

请参阅以下答复:

https://stackoverflow.com/a/58436108/6793637

只需复制粘贴响应即可生成架构。

https://jsonschema.net/

在创建架构之前,请确保选中复选框。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58419015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档