Chai - 期望对象具有深度 属性 的数组忽略顺序
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。
我需要检查 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。