我试图找出一些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")
通过
答案 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 */