Jestjs 数组参数应具有设置的长度

Jestjs 数组参数应具有设置的长度,jestjs,Jestjs,我是一个开玩笑的新手,所以如果这是一个明显的答案,请原谅我,但我在浏览文档后找不到答案 我有一个函数(funcA),它根据funcA接收的参数将不同长度的数组传递给另一个函数(funcB)。我正在尝试根据我给funcA的参数测试传递给funcB的数组长度是否正确。我并不担心数组的内容,只是它有一定的长度。这是我目前的尝试: //模块 常量funcA=require('./funcA') //嘲弄 const funcB=jest.fn(成对=>{ 返回对[0] }) //试验 测试('应通过36

我是一个开玩笑的新手,所以如果这是一个明显的答案,请原谅我,但我在浏览文档后找不到答案

我有一个函数(funcA),它根据
funcA
接收的参数将不同长度的数组传递给另一个函数(funcB)。我正在尝试根据我给
funcA
的参数测试传递给
funcB
的数组长度是否正确。我并不担心数组的内容,只是它有一定的长度。这是我目前的尝试:

//模块
常量funcA=require('./funcA')
//嘲弄
const funcB=jest.fn(成对=>{
返回对[0]
})
//试验
测试('应通过3623长度的数组',()=>{
常数结果=funcA(75)
expect(结果).toBeInstanceOf(对象)
expect(funcB).toHaveBeenCalledWith(expect.any(数组).toHaveLength(3623))
})
如果可以,我想尝试使用,但以下测试结果出现错误:

TypeError:expect.any(…).toHaveLength不是函数


即使将
expect.any(…)
括在另一组括号中,也会出现相同的错误。有什么方法可以实现我想要的吗?

只声明数组长度而忽略数组内容的测试没有什么价值。越具体越好。如果需要特定的数组,则可以将其指定为fixture

此断言无法工作,因为
toHaveBeenCalledWith
应为预期结果,并且不能包含另一个断言
toHaveLength

为了断言
已通过带有任何元素的数组调用
,它应该是:

expect(funcB).toBeCalledWith(Array(3623).fill(expect.anything()))
另一个选项是直接断言参数:

expect(funcB).toBeCalledWith(expect.any(Array))
expect(funcB.mock.calls[0][0]).toHaveLength(3623))

funcA和funcB有什么关系?如果funcA调用funcB,你不能仅仅通过给本地funcB变量分配一个间谍来模拟它。谢谢,这正是我想要的!我还在测试数组中所有项的结构是否都是object&是否具有正确的属性