如何模拟JSON导入Jest TypeScript

时间:2018-12-17 04:59:10

标签: javascript typescript unit-testing jestjs

我想使用Jest来模拟.json文件,以便在Typescript中进行单元测试。

我目前在jest.config.js文件中使用此全局模拟。这样工作正常:

    'package.json': '<rootDir>/__tests__/tasks/__mocks__/data.json'

但是我想在测试类中本地模拟它。

这对我不起作用:

jest.mock('../../package.json', () => ({
    package : { name: '__name__', 'version': '__version__'};
}), { virtual: true })

2 个答案:

答案 0 :(得分:1)

您可以模拟该类,并将该文件的默认导出分配给变量,如下所示:

  jest.mock('../../ utils / api / api');
const FakeClass = require('../ someFile.js')。default;
 

然后访问对模拟类上的函数的调用,如下所示:

  FakeClass.prototype.myFunc.mock.calls
 

答案 1 :(得分:0)

您尝试过以下吗?

const packageJson = require('../../package.json); jest.mock(packageJson, () => ({ package : { name: '__name__', 'version': '__version__'}; }), { virtual: true })