Mocha,Chai:断言Object包含在一个对象数组中

时间:2013-07-09 21:24:00

标签: javascript testing mocha chai

Chai有一种很好的方法可以断言一个数组是否包含某个元素

expect([1,2,3]).to.include(2);

给定一个对象数组,我想要的是类似的东西:

expect([{a:1},{b:2}]).to.include({b:2});

这可能吗?

3 个答案:

答案 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

这里要记住的要点是参考类型。