问题描述
我正在尝试使用Mocha和Chai对一系列对象编写一些测试。我想遍历此数组并返回包含error
键的所有对象。我认为这种事情很容易,但是我很难过。
[
{ fileName: 'font1.ttc',error: 'font_type_not_supported' },{ fileName: 'font2.ttf',error: 'parse_Failed' },{ fileName: 'font3.tff' }
]
我尝试过类似的事情。
expect(testResult).to.have.nested.property('error');
我可能缺少一些简单的东西,有人有任何建议吗?
解决方法
我认为您可以使用节点函数filter
来完成工作。
类似的作品:
var array = [
{ fileName: 'font1.ttc',error: 'font_type_not_supported' },{ fileName: 'font2.ttf',error: 'parse_failed' },{ fileName: 'font3.tff' }
]
var filter = array.filter(item => item.error != undefined)
通过这种方式,您可以获取存在属性的元素。
但是,如果要比较具有该属性的元素数,则可以使用length
属性。
var count = array.filter(item => item.error != undefined).length
expect(count).gt(0)
如果count
变量大于0,则表示至少一个对象具有该属性。