如何检查支票应包含多个属性与chai-things?

时间:2015-04-09 10:26:06

标签: javascript node.js mocha chai

我希望检查一个数组在我的mocha测试中包含一个Object for Node.js应用程序,我知道Chai-Things 我可以这样做:

[{ pet: 'cat' }, { pet: 'dog' }].should.include({ pet: 'cat' })

[{ pet: 'cat' }, { pet: 'dog' }].should.contain.a.thing.with.property('pet', 'cat')

但有没有办法检查是否包含多个属性而不知道所有属性 例如,如果我有一个数组:

var arr = [{ pet: 'cat', owner:1, id:1 }, { pet: 'cat', owner:2, id:2 },{ pet: 'dog', owner:1, id:3 }]

我想检查包含{ pet: 'cat', owner:1}的对象我不知道测试前的id是什么,因为这将随机生成

我怎么能以有效的方式做到这一点,最好用chai,chai plugin或vanilla js,因为我不能使用另一个框架。我看了Chai-fuzzy,但我认为这不会有助于理解

1 个答案:

答案 0 :(得分:0)

据我所知,你想过滤javascript对象数组。您可以使用jquery api grep ,如下所示。

filter = $.grep(arr, function (v) {
        return v.pet === "cat" && v.owner === 1;
});

希望它有所帮助......