javascript - 测试数组以包含具有特定键 : value 的对象

标签 javascript unit-testing chai

正如标题所说,我们发现自己处于一种情况,需要检查数组是否包含其属性之一等于某值的元素。

我们尝试并搜索了几个小时,直到我们决定提出有关此问题的问题。 我们能够像这样解决问题:

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/

相关文章:

javascript - 在手机上点击下拉菜单时使容器保持原位

python - 在测试之间自动删除 MEDIA_ROOT

javascript - 如何计算到下个月的第二天?

node.js - 使用 server.inject 错误捕获的 hapijs 测试

javascript - 异步/调用堆栈困惑

javascript - 带有 moment.js 的字符串值

javascript - 首先将查询 slider 更改为默认幻灯片

java - 模拟 Tomee 服务器属性

ios - 用于异步测试的 XCTest 和 NSRunLoop

node.js - 一起运行时 nodejs : Tests pass individually, 失败(mocha、sinon、aws-sdk)