我正在尝试监视同一文件中的另一个函数调用的导出函数。
我似乎根本无法让 Jest 使用间谍。
尝试混合使用 mockImplementation 和 mockReturnValue。
实用程序.ts:
export const func1 = (x: number) => {
const y = x + 1
return y
}
export const func2 = (a: number) => {
const b = a + 2
return b
}
export const func3 = (x: number, y: number) => {
const foo = func1(x)
const bar = func2(y)
return foo + bar
}
utils.test.ts:
import * as sut from './utils'
describe('test', () => {
test('func3 spys', () => {
let func1Spy: jest.SpyInstance
let func2Spy: jest.SpyInstance
func1Spy = jest.spyOn(sut, 'func1').mockImplementation(() => 8)
func2Spy = jest.spyOn(sut, 'func2').mockImplementation(() => 10)
const result = sut.func3(1, 2)
expect(func1Spy).toHaveBeenCalled()
expect(func2Spy).toHaveBeenCalled()
expect(result).toBe(6)
})
})
预期行为:Jest 看到 spy'd 函数已被调用 实际输出:
Expected number of calls: >= 1
Received number of calls: 0
注释掉间谍调用断言给了我一个通过测试,所以函数运行正确。只是没有间谍