首页 > 解决方案 > 如何在 mocha-chai 测试中检查数组的所有元素是否具有子属性?

问题描述

我正在尝试测试来自服务器的响应。假设响应是一个数组,其元素具有一组属性,对应的值是具有其他属性的对象。

例如:

{
 "array": [
        {
            "porp1": {
                "subprop11": "a",
                "subprop12": [1,2]
            },
            "prop2": "c",
        },
        {
            "porp1": {
                "subprop11": "h",
                "subprop12": [3,2]
            },
            "prop2": "a",
        }
    ]
}

我想检查数组的所有元素是否具有属性和子属性。对于第一级属性,我设法使用chai-things

const chai = require('chai');
chai.use(require('chai-things'));
....
res.body['array'].should.all.have.property('prop1');
res.body['array'].should.all.have.property("prop2");

如何检查元素是否具有子属性"subprop11"和“subprop12”?

标签: node.jstestingmocha.jschai

解决方案


像这样的东西似乎有效

res.body['array'].should.all.have.nested.property('prop1.subprop11');

推荐阅读