如何使用 Frisby.js 测试包含对象的可选数组?例如,假设我们有一个返回如下内容的 API 调用:
{
"id": "123",
"type": "A",
"list": [
{
"id": "111",
"size": 1
},
{
"id": "222",
"size": 2
}
]
}
但是,它也可能返回如下内容:
{
"id": "456",
"type": "B"
}
目前,我正在尝试:
const frisby = require('frisby');
const Joi = frisby.Joi;
test('myTest', () => {
return frisby
.get(myUrl)
.expect('status', 200)
.expect('jsonTypes', {
id: Joi.string().required(),
type: Joi.string().required().
list: Joi.array().optional()
})
.expect('jsonTypes', 'list.*', {
id: Joi.string().required(),
size: Joi.number().required()
});
});
但是,这不起作用,因为如果 list 属性不存在,则不会定义路径 (list.*)。有任何想法吗?