ts-jest提供了模拟测试和模块的不同实例

时间:2020-02-14 21:11:14

标签: mocking jestjs ts-jest

我正在使用导出功能的文件的自动模拟,实际文件看起来像

export const serialize = (type:boolean) => (data) => {....}

在调试器中,我可以看到正在测试的模块(控制器)中,serialize被调用并且是一个模拟。

在我的测试中,我有

import {controller} from '../../src/controller'
import {serialize} from '../../src/serialize'
jest.mock('../../src/serialize');

describe('test', () => {
    it('serialize'), (done) => { 
       controller.put();  //<-- calls serialize
       expect(serialize).toHaveBeenCalled();  // <-- this fails, with 0 calls
    }
})

1 个答案:

答案 0 :(得分:0)

问题在于,在Controller中,调用序列化函数的方式导致将保存在WeakMap中的嘲笑的嘲笑配置从弱映射中删除。因此,我移动了电话,以便GC确实收集了引用。