【问题标题】:Chai check object contains only keysChai 检查对象只包含键
【发布时间】:2018-07-21 01:35:48
【问题描述】:

我正在尝试为仅检查对象仅包含列出的键的关键字找出一些 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")通过

【问题讨论】:

    标签: javascript node.js unit-testing chai


    【解决方案1】:

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

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

    【讨论】:

    • 更新样本不正确。无法应用此答案,但这是我的错误。
    【解决方案2】:

    使用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 */
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-09
      • 1970-01-01
      • 2020-08-11
      • 1970-01-01
      • 2017-02-08
      • 2023-04-02
      相关资源
      最近更新 更多