正如标题所说,我们发现自己处于一种情况,需要检查数组是否包含其属性之一等于某值的元素。
我们尝试并搜索了几个小时,直到我们决定提出有关此问题的问题。 我们能够像这样解决问题:
const playersRegs = created.gameLog.filter(e => e.nameType === eventTypes.PlayerReg);
expect(playersRegs).to.have.lengthOf(1);
但我们希望有类似的东西:
expect(created.gameLog).to.include.something.that.has.property('nameType', eventTypes.PlayerReg);
如果我们遗漏了任何内容,请告诉我们,如果我们没有遗漏,请考虑添加此功能;)
最佳答案
您可以使用 .some() 代替:
const hasPlayersReg = created.gameLog.some(e => e.nameType === eventTypes.PlayerReg);
expect(hasPlayersReg).to.be.true;
或者像这样的.find():
const playersReg = created.gameLog.find(e => e.nameType === eventTypes.PlayerReg);
expect(playersReg ).to.not.be.undefined;
其余部分似乎都很好。
关于javascript - 测试数组以包含具有特定键 : value 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45613010/