我正在尝试验证数组具有2个具有以下值的元素:
expect([{
createdAt: 1545588925941,
updatedAt: 1545588925941,
id: '5c1fd0bdd38b1b2bb0875dd9',
readAt: null,
type: 'ResidentCreatedTask',
dataVersion: 0,
data: '{}',
user: '5c1fd0bdd38b1b2bb0875dd6',
home: '5c1fd0bdd38b1b2bb0875dd8'
},
{
createdAt: 1545588925941,
updatedAt: 1545588925941,
id: '5c1fd0bdd38b1b2bb0875dd9',
readAt: null,
type: 'ResidentCreatedTask',
dataVersion: 0,
data: '{}',
user: '5c1fd0bdd38b1b2bb0875dd6',
home: '5c1fd0bdd38b1b2bb0875dd8'
}
]).to.be.an('array').that.has.lengthOf(2).and.to.deep.nested.include({
0: {
type: 'ResidentCreatedTask'
},
1: {
type: 'ResidentCreatedTask'
},
});
但是它不起作用。我也尝试将键更改为带有'[0]'
和'[1]'
等括号的字符串。
我还尝试了删除键并使val包含这样的数组:
.include([{ type: 'ResidentCreatedTask' }, { type: 'ResidentCreatedTask' }]);
但这也不起作用。
答案 0 :(得分:0)
我不喜欢这种解决方案,但是您可以将其包装为一个对象。
因此我们的有效载荷为const payload = [{ id: 0 },{ id: 1 }]
。执行以下操作将不起作用,这是我在原始帖子中所做的:
expect(payload).to.nested.include({ '[0].id': 0, '[1].id': 1 });
解决方法是:
const wrappedPayload = { a: payload };
expect(wrappedPayload).to.nested.include({ 'a[0].id': 0, 'a[1].id': 1 });
这有效,但是我不喜欢将其包装。仍然有很多解决方案。我应该向柴队报告这个错误吗?