jjzjj

javascript - Chai 期待 : an array to contain an object with at least these properties and values

coder 2024-05-16 原文

我正在尝试验证像这样的对象数组:

[
    {
        a: 1,
        b: 2,
        c: 3
    },
    {
        a: 4,
        b: 5,
        c: 6
    },
    ...
]

至少包含一个同时具有{ a: 1 } { c: 3 } 的对象:

我想我可以用 chai-things 做到这一点, 但我不知道对象的所有属性都可以使用

expect(array).to.include.something.that.deep.equals({ ??, a: 1, c: 3});

contain.a.thing.with.property 不适用于多个属性:/

测试此类内容的最佳方法是什么?

最佳答案

所需的解决方案似乎是这样的:

expect(array).to.include.something.that.includes({a: 1, c: 3});

array 包含一个包含这些属性的项目。不幸的是,它似乎not be supported by chai-things在这一刻。在可预见的 future 。

经过多次不同的尝试,我发现转换原始数组可以使任务更容易。这应该在没有额外库的情况下工作:

// Get items that interest us/remove items that don't.
const simplifiedArray = array.map(x => ({a: x.a, c: x.c}));
// Now we can do a simple comparison.
expect(simplifiedArray).to.deep.include({a: 1, c: 3});

这还允许您同时检查多个对象(我的用例)。

expect(simplifiedArray).to.include.deep.members([{
  a: 1,
  c: 3
}, {
  a: 3,
  c: 5
}]);

关于javascript - Chai 期待 : an array to contain an object with at least these properties and values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34398951/

有关javascript - Chai 期待 : an array to contain an object with at least these properties and values的更多相关文章

随机推荐