Chai有一种很好的方法可以断言一个数组是否包含某个元素
expect([1,2,3]).to.include(2);
给定一个对象数组,我想要的是类似的东西:
expect([{a:1},{b:2}]).to.include({b:2});
这可能吗?
答案 0 :(得分:18)
看看Chai Things plugin,做你想做的事:
[{a:1},{b:2}].should.include.something.that.deep.equals({b:2})
答案 1 :(得分:11)
以下是集合的替代和非顺序依赖方法:
expect([1, 2, 3]).to.include.members([3, 2, 1])
您也可以使用deep
标志来比较对象:
expect([{ id: 1 }]).to.deep.include.members([{ id: 1 }]);
expect({foo: 'bar', width: 190, height: 90}).to.include({ height: 90, width: 190 })
答案 2 :(得分:5)
您可以对对象数组使用深度方法。
expect([{a:1},{b:2}]).to.deep.include({b:2}); //It will pass
您可以在此处使用深层方法找到更多示例:http://chaijs.com/api/bdd/#method_deep
这里要记住的要点是参考类型。