我正在使用测试我的应用程序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)
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 将其保存在其中。然后我解构了主文件中的对象。
JSON 文件 (object.js):
module.exports = {
"testObject":
{
"name": testName
"surname": testSurname
}
}
Run Code Online (Sandbox Code Playgroud)主文件
const { testObject } = require('./config/object');
Run Code Online (Sandbox Code Playgroud)exm*_*axx 13
当使用Typescriptand时Vue CLI,我所需要做的就是添加resolveJsonModule到tsconfig.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.js在ModuleNameMapperconfig.xml文件中的文件中配置它们。