【问题标题】:How to mock JSON import Jest TypeScript如何模拟 JSON 导入 Jest TypeScript
【发布时间】:2019-05-17 11:07:26
【问题描述】:

我想在 Typescript 中使用 Jest 模拟一个 .json 文件进行单元测试。

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

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

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

这对我不起作用:

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

【问题讨论】:

    标签: javascript typescript unit-testing jestjs


    【解决方案1】:

    您尝试过以下方法吗?

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

    【讨论】:

    • Else try es6 import statement
    • 感谢您的回复。但还是没有醒。默认情况下,函数正在工作,没有模拟值。
    【解决方案2】:

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

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

    然后像这样访问模拟类上的函数调用:

    FakeClass.prototype.myFunc.mock.calls
    

    【讨论】:

    • 如果您仍然无法弄清楚,请告诉我。
    猜你喜欢
    • 2017-08-16
    • 1970-01-01
    • 2021-04-14
    • 2020-02-26
    • 2020-08-04
    • 2021-01-21
    • 2018-06-30
    相关资源
    最近更新 更多