具有未知数组的chai子集

时间:2018-02-24 13:30:11

标签: javascript node.js mocha chai

我有一个我想测试的复杂JSON对象。 有没有办法让这个在chai子集中运行,或者这个测试可以通过的替代插件。

var result = {
  present: 'Yes',
  notPresent: 'No',
  examples: ['sam','joe'],
  nestedThing: {
    nestedAttr: 1,
  }
};

var expected = {
  present: 'Yes',
  nestedThing: {
    nestedAttr: 1,
  }
  examples: [],
}

chai.expect(result).to.containSubset(expected);

我想声明examples是一个数组,但我不关心数组中有什么(如果有的话)。

奖励积分如果我可以断言它至少有1个项目,但我认为这不太可能。

修改

我可以稍微重组一下expected,如果它允许它工作的话。例如

var expected = {
  ...
  examples: chai.matcher.isArray(),
}

1 个答案:

答案 0 :(得分:0)

我最终选择了chai-shallow-deep-equal,这确实支持了这种行为。 (虽然没有检查阵列的长度,但这是一个长镜头。)

此处示例:https://runkit.com/chrisjensen/subset-match-empty-array

我也created a fork,以便在比赛失败时显示差异。 UPDATE 该分叉已被接受为chai-shallow-deep-equal

initCounter