gpt4 book ai didi

javascript - 使用 Jest 中的 toMatchObject 检查对象是否具有一个属性,但不具有另一个属性

转载 作者:行者123 更新时间:2023-12-02 23:55:28 25 4
gpt4 key购买 nike

假设某个东西返回一个复杂的对象:

const value = {
...,
client: { ... },
...
};

我想测试一堆属性,对于client我想确保它有一定的 name ,但没有id完全没有。

如何实现它?

expect(value).toMatchObject({
...,
client: ???,
...
});

如果只是 name我会做 client: { name: 'expected' } .

我试过client: { id: undefined, name: "expected" } ,但是undefined与“没有属性(property)”不同。

我知道我可以做一个单独的案例 expect(value).not.toHaveProperty('client.name') ,但如果只有一个就太好了 toMatchObject (我在多次测试中需要这个)。

最佳答案

按此排序,但仍然想知道是否有更好的方法:

expect.extend({
matchingAll(actual, expected) {
return { pass: expected.every(e => e.asymmetricMatch(actual)) };
}
});

expect(value).toMatchObject({
...,
client: expect.matchingAll([
expect.objectContaining({ name: 'expected' }),
expect.not.objectContaining({ id: expect.anything() }),
]),
...
});

关于javascript - 使用 Jest 中的 toMatchObject 检查对象是否具有一个属性,但不具有另一个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55410176/

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