testing - 使用 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,则意味着至少一个对象具有该属性。
推荐阅读
- android - Mockito.verify 没有看到方法执行,即使它是
- javascript - Webpack - 安装 SimpeWebRtc 时未定义窗口
- django - Django rest框架在serializer.py或views.py中哪里写复杂的逻辑?
- flutter - 如何对包含括号的字符串使用拆分方法?
- html - 如何使标题占据所有垂直空间,将列表向右推?
- vhdl - 什么是 {globally|locally} 静态 {primary|expression|range|subexpression},它是什么意思?
- google-api - 地理编码 API 与容器和 IP 白名单的集成
- azure - botframework 网络聊天 V4 构建和生成自定义 CSS 和 JS 文件
- python - 不是 Flask SelectField 中的有效选择
- java - Apache POI:如何设置数据透视表显示布局?