我需要检查payment
是否具有名为transactions
且具有期望值的属性:
expect(payment).to.have.deep.property('transactions', [
TRANSACTION_ID_1,
TRANSACTION_ID_2,
]);
由于未指定transactions
的顺序,因此测试不会一直通过。
如何在不更改测试结构的情况下解决问题?
注意:我找到了deep-equal-in-any-order
插件,但似乎没有任何帮助。
答案 0 :(得分:0)
遍历数组并检查是否包含每个项目。
[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。