使用Mocha / Chai测试对象数组包含某个键

问题描述

我正在尝试使用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,则表示至少一个对象具有该属性。