【发布时间】:2020-10-04 17:59:56
【问题描述】:
我对 Jest 有点陌生,所以如果这是一个明显的答案,请原谅我,但在滚动浏览文档后我找不到答案。
我有一个函数(funcA),它根据funcA 接收的参数将不同长度的数组传递给另一个函数(funcB)。我正在尝试根据我提供给funcA 的参数来测试传递给funcB 的数组长度是否正确。我并不关心数组的内容,只是它有一定的长度。这是我目前的尝试:
// Modules
const funcA = require('./funcA')
// Mock
const funcB = jest.fn(pairs => {
return pairs[0]
})
// Test
test('Should pass array of 3623 length', () => {
const result = funcA(75)
expect(result).toBeInstanceOf(Object)
expect(funcB).toHaveBeenCalledWith(expect.any(Array).toHaveLength(3623))
})
如果可以的话,我想尝试使用any(),但以下测试导致错误:
TypeError: expect.any(...).toHaveLength 不是函数
即使我将expect.any(...) 包装在另一组括号中,我也会遇到同样的错误。有什么方法可以实现我想要的吗?
【问题讨论】:
-
funcA 和 funcB 有什么关系?如果 funcA 调用 funcB,你不能只通过给本地 funcB 变量分配一个 spy 来模拟它。
标签: jestjs