繁体   English   中英

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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM