[英]Chai - Expect an object to have deep property of an array ignore order
我需要检查payment
是否具有名为transactions
的属性和预期值:
expect(payment).to.have.deep.property('transactions', [
TRANSACTION_ID_1,
TRANSACTION_ID_2,
]);
由于未指定transactions
顺序,因此测试不会一直通过。
如何在不改变测试结构的情况下解决问题?
注意:我发现了deep-equal-in-any-order
插件,但它似乎没有帮助。
遍历数组并检查它是否包含每个项目。
[TRANSACTION_ID_1, TRANSACTION_ID_2].forEach(id => {
expect(payment).to.have.deep.property('transactions').that.includes(id);
});
如果您需要检查transactions
是否是预期 ID 的无序数组,那么还要检查长度。
expect(payment).to.have.deep.property('transactions').that.has.lengthOf(2);
当transactions
具有所有预期 id 并且具有相同长度的预期 id 时,则在正确排序时等于预期 id。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.