gpt4 book ai didi

javascript - Chai - 期望对象具有数组忽略顺序的深度属性

转载 作者:行者123 更新时间:2023-11-28 20:36:19 25 4
gpt4 key购买 nike

我需要检查 payment 是否有一个名为 transactions 的属性具有预期值:

expect(payment).to.have.deep.property('transactions', [
TRANSACTION_ID_1,
TRANSACTION_ID_2,
]);

由于未指定事务的顺序,因此测试并非始终通过。

如何在不改变测试结构的情况下解决问题?

注意:我找到了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。

关于javascript - Chai - 期望对象具有数组忽略顺序的深度属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53275649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com