我用
.toMatchObject()
编写 Jest 测试并遇到以下问题。我的一些对象的值是数组,我想测试它们是否有长度或为空。
我现在的代码:
test('suite one', async () => {
//return { key_one: ["string", ...], key_two: .... }
const result = await function(args);
expect(result).toMatchObject({
key_one: expect.any(Array),
key_two: expect.any(OtherResult),
...
})
})
我明白,我总是可以选择扩展
expect
,但是还有其他选项可以在 toMatchObject
阶段内实现所需的结果,并且无需在 toMatchObject
之后使用 expect(result.key_one).toHaveLength(1)
编写额外的字符串吗?
您可以执行类似的操作来检查对象上的属性是否是具有特定长度的数组
expect(result).toBe(expect.objectContaining({
key_one: Array(1).fill(expect.anything()),
}));