Chai检查对象仅包含密钥

时间:2018-02-10 11:11:19

标签: javascript node.js unit-testing chai

我试图找出一些chai替换只用于检查对象包含仅列出的键的关键字。

有我的期望:

chai.expect({ x: 1, z: 1 }).to.contains.only.keys("x", "y")失败

chai.expect({ }).to.contains.only.keys("x", "y")通过

chai.expect({ x: 1 }).to.contains.only.keys("x", "y")通过

2 个答案:

答案 0 :(得分:0)

您应该使用to.have.all.keys

expect({ x: 1 }).to.have.all.keys('x');

答案 1 :(得分:0)

使用lodash过滤对象将获得所需的内容:

expect(_.omit({ x: 1, z: 1 }, ['x','y']), 'invalid properties').to.be.empty; /* fails */
expect(_.omit({ x: 1 }, ['x','y']), 'invalid properties').to.be.empty; /* passes */
expect(_.omit({ }, ['x','y']), 'invalid properties').to.be.empty; /* passes */
相关问题