【发布时间】:2019-12-12 22:32:48
【问题描述】:
我似乎无法让 mock 正常工作。
一点上下文:
"jest": "^24.8.0",
"ts-jest": "^24.0.2",
"typescript": "^3.5.3"
storage.ts 包含一个方法
getOsTmpDir。moduleA.ts 正在消耗 storage.ts
在 moduleA.spec.ts 中:
jest.mock('./storage', () => ({
getOsTmpDir: jest.fn().mockImplementation(() => '/tmp'),
}));
打印(在console.log(getOsTmpDir());给出undefined
我尝试过的其他事情:
-
getOsTmpDir: jest.fn(() => '/tmp') getOsTmpDir: jest.fn().mockReturnValue('/tmp')
但似乎没有任何帮助。我错过了什么?
编辑:我找到了问题。我没有注意到所有模拟在每次测试之前都会重置,因为我已经在文件顶部定义了模拟(一次) ,模拟在运行任何测试之前就被终止了
beforeEach(async () => {
jest.resetAllMocks(); <----
....
}
【问题讨论】:
-
考虑将您的答案发布为答案而不是编辑 :)
标签: typescript mocking jestjs ts-jest