0

我正在尝试监视同一文件中的另一个函数调用的导出函数。

我似乎根本无法让 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

注释掉间谍调用断言给了我一个通过测试,所以函数运行正确。只是没有间谍

4

0 回答 0