假设响应的主体是这样的:
{
"array": [
{
"porp1": {
"subprop11": "a",
"subprop12": [1,2]
},
"prop2": "c",
},
{
"porp1": {
"subprop11": "h",
"subprop12": [3,2]
},
"prop2": "a",
}
]
}
我知道我可以通过以下方式检查数组的所有元素是否存在prop1.subprop11
:
res.body['array'].should.all.have.nested.property('prop1.subprop11');
我知道我可以测试非嵌套属性类型,如下所示:
res.body['array'].to.be.a('array');
但是我无法连接嵌套属性的检查,即我不能执行以下操作:
res.body['array'].should.all.have.nested.property('prop1.subprop11').that.is.a("string");
或类似的东西。
如何检查它是字符串?
我可能会迟到,您可以使用 for 循环来测试本身(不是最好的,但有效(
for (const { prop1, prop2, prop3} of data) {
const Id = generateID(index, timeStamp)
expect("someprop").to.have.nested.property('prop1.subprop11').that.is.a("string");
}