如何在Jest测试中导入JSON文件?

Lai*_*290 9 javascript jestjs

我正在使用测试我的应用程序Jest,但出现了如下错误:

SyntaxError: Unexpected token }
Run Code Online (Sandbox Code Playgroud)

行女巫的发生错误是:

import { something } from "../my-json.json";
Run Code Online (Sandbox Code Playgroud)

如何JSON在Jest测试中导入文件?

Mic*_*sky 17

适用于 Typescript / ts-jest 26.5

import * as myJson from './mock/MyJson.json';

...

const result = doAnyting(myJson);
Run Code Online (Sandbox Code Playgroud)

  • japp,`import myJson from './mock/MyJson.json';`为我返回未定义。更改为 `import * as myJson from './mock/MyJson.json';` 使用 Typescript 和 ts-node 实现了这一点 (3认同)

And*_*eas 14

如此处所述:您可以使用node.js 中的 json是否需要:

import someObject from ('./somefile.json')
Run Code Online (Sandbox Code Playgroud)

这也应该有效:

const testObject = require('../config/object');
Run Code Online (Sandbox Code Playgroud)

然而,当我使用 jest 进行测试时,我通过使用 .js 扩展名保存 json 并使用 module.exports 将其保存在其中。然后我解构了主文件中的对象。


exm*_*axx 13

当使用Typescriptand时Vue CLI,我所需要做的就是添加resolveJsonModuletsconfig.ts

// tsconfig.ts

{
  "compilerOptions": {
    "resolveJsonModule": true,
  }
}
Run Code Online (Sandbox Code Playgroud)

这实际上解决了一般 Typescript 加载 JSON 文件的问题。

注意:我正在使用Vue CLI,因此可能已经预先配置了一些与 JSON 相关的配置。


小智 5

你需要import json from 'filename.json'。确保如果您使用路径别名,您需要jest.config.jsModuleNameMapperconfig.xml文件中的文件中配置它们。