【问题标题】:Checking the value in the array javascript检查数组javascript中的值
【发布时间】:2020-09-08 14:44:30
【问题描述】:

我正在做一些 API 测试。

我正在尝试从 API 响应中检查名称。

API 响应以数组形式呈现数据。

我正在检查名称 activeadmin 是否存在,但是我收到一个错误 The Repository activeadmin exists | AssertionError: 预期 'pineapple' 完全等于 'activeadmin'

我不明白为什么它检查数组中的第二个名称值而不是第一个?

这是我的代码

let jsonData = pm.response.json()

pm.test('The Repository activeadmin exists', () => {
    _.each(jsonData, (item) => {
        pm.expect(item.name).to.eql('activeadmin')
    })
})

我尝试过使用 item[0].name 但这会返回错误 name is undefined

以下是 API 响应

   [
{
"id": 2847287348,
"node_id": "sdhjaskdhkjasdhjashd",
"name": "activeadmin",
"full_name": "apple/activeadmin",
"private": false
   },
 {
"id": 2847287348,
"node_id": "sdhjaskdhkjasdhjashd",
"name": "pineapple",
"full_name": "apple/activeadmin",
"private": false
 },
 {
"id": 2847287348,
"node_id": "sdhjaskdhkjasdhjashd",
"name": "orange",
"full_name": "apple/activeadmin",
"private": false
 } ]

【问题讨论】:

  • 尝试使用item[0].name 而不是item(0).name
  • 对不起,我的意思是我尝试了 [0],但它不起作用
  • @Sascha - 我试过了,我得到 TypeError: Cannot read property 'name' of undefined
  • 这看起来像 item[0] 未定义。
  • 您确定 jsonData 与您显示的 API 响应匹配吗?你能调试/输出jsonData来确认吗?

标签: javascript json postman


【解决方案1】:

代码工作正常。它遍历响应的每个元素。 您正在使用 _.each 我猜它需要 0、1 等。

所以当它进入显然没有你的第二个元素时它会崩溃 指定名称。

您应该访问您的 jsonData[0] 元素的名称。

您可以在不同的函数中实现测试功能并将其应用到 jsonData[0].

如果这对您不起作用,请向我们提供有关 测试函数和 pm 对象。

【讨论】:

    【解决方案2】:

    一切都按预期工作。问题是,每当您拨打pm.expect 时,它都会检查名称是否为'activeadmin'。由于您有一个值数组,因此它会在第一次失败时立即失败。为了解决这个问题,我建议使用以下代码:

    let jsonData = pm.response.json()
    
    pm.test('The Repository activeadmin exists', () => {
        let activeAdminExists = false
        _.each(jsonData, (item) => {
            if(item.name == 'activeadmin'){
                 activeAdminExists = true
            }
        });
        pm.expect(activeAdminExists ).to.eql(true)
    })
    

    【讨论】:

      猜你喜欢
      • 2012-06-16
      • 2021-08-19
      • 2018-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多