【发布时间】:2021-11-04 03:38:23
【问题描述】:
我想检查数组中的每个对象是否都包含一个属性“a”,其值为数字。
test('a must be number always', () => {
let response = [{ a: 'asdasd', y: 2 }, { a: 12 }];
expect(response).toEqual(
expect.arrayContaining([
expect.objectContaining({ a: expect.any(Number) })
])
);
});
上述情况正在通过,因为 jest 能够找到至少 1 个包含带有数字的属性“a”的对象。但我希望每个对象都有编号。类似于Array.every。
在上面的继续中,我们如何将对象属性匹配为数字或字符串。
test('a must be either number or String always', () => {
let response = [{ a: 'asdasd', y: 2 }, { a: true }];
expect(response).toEqual(
expect.arrayContaining([
expect.objectContaining({ a: expect.any(Number) or expect.any(String) or `expect a = 4` })
])
);
});
【问题讨论】:
标签: jestjs