gpt4 book ai didi

javascript - 测试数组是否为空或包含某个对象

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

我想测试一个数组是空的还是包含特定结构的对象。在伪代码中它可能是这样的:

expect([])
.toHaveLength(0)
.or
.arrayContaining(
expect.toMatchObject(
{ foo: expect.any(String) }
)
) => true

expect([{foo: 'bar'}])
.toHaveLength(0)
.or
.arrayContaining(
expect.toMatchObject(
{ foo: expect.any(String) }
)
) => true

expect([1])
.toHaveLength(0)
.or
.arrayContaining(
expect.toMatchObject(
{ foo: expect.any(String) }
)
) => false

也许我对 Jest 的工作方式理解有误,但对我来说,我的问题看起来像是一个或问题。

最佳答案

在您的测试套件中封装逻辑或的最佳方式是将特定情况排除在测试本身之外。例如:

it('has an array of objects', () => {
if (arr.length > 0) {
expect(arr).toBe(expect.arrayContaining(expect.toMatchObject({ foo: expect.any(String) })));
}
});

但是,我认为对单元测试更友好的方法是分离您的关注点。一项测试何时存在空数组,一项测试何时将 foo 属性设置为 'bar',等等。

关于javascript - 测试数组是否为空或包含某个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52080746/

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