Javascript 如何使用Chai检查从API获取的数组中元素的属性是否等于某个值?

Javascript 如何使用Chai检查从API获取的数组中元素的属性是否等于某个值?,javascript,chai,Javascript,Chai,我有一个验证函数,它使用expect断言检查不同的表单字段(检查字段是否为空)。如果捕获到错误,将显示一条错误消息,指示哪个字段的断言失败。这很好用 但是,我无法检查数组中元素的属性是否等于某个值。这就是我想做的: function validateNameAndToken (campaign) { let campaignName = campaign.name; try { expect(campaign.name, 'Campaign name can not be em

我有一个验证函数,它使用
expect
断言检查不同的表单字段(检查字段是否为空)。如果捕获到错误,将显示一条错误消息,指示哪个字段的断言失败。这很好用

但是,我无法检查数组中元素的属性是否等于某个值。这就是我想做的:

function validateNameAndToken (campaign) {
  let campaignName = campaign.name;

  try {
    expect(campaign.name, 'Campaign name can not be empty').to.not.be.empty

    // More expect assertions that are more or less similar


    // This is the assertion that should somehow check if the array contains 
    // an element with its name property equal to campaignName
    expect(API.campaigns, 'The campaign name can not be repeated').to.not.be.an('array').that.includes(campaign);

  }
  catch (err) {
    console.log('Campaign#validateNameAndToken - catch: ', err)
    return { isValid: false, msg: err.message }
  }
  return { isValid: true }
}

我看过Chai的文档,了解了如何检查数组是否包含元素,以及如何查看对象是否包含属性。。。但是还不能把所有的部分放在一起…

您可能需要使用.deep()。看看这本书。希望这有帮助。

还有.to.have.property()之类的吗?for(让我=0;我为迟来的回复感到抱歉,但我已经离开了。这应该是你所期望的。我刚才在两个不匹配的对象上运行了类似的操作。