我正在使用<p id="demo"></p>
<br>
<br>
<br>
<p id="demo2"></p>
测试我的应用程序,但它收到的错误如下:
Jest
该行发生的错误是:
SyntaxError: Unexpected token }
如何在Jest测试中导入import { something } from "../my-json.json";
文件?
答案 0 :(得分:9)
如此处所述:is there a require for json in node.js,您可以使用:
import someObject from ('./somefile.json')
这也应该起作用:
const testObject = require('../config/object');
但是,当我使用jest进行测试时,我通过使用.js扩展名保存json并使用module.exports将其保存在其中来使其工作。然后,我在主文件中解构了该对象。
JSON文件(object.js):
module.exports = {
"testObject":
{
"name": testName
"surname": testSurname
}
}
主文件
const { testObject } = require('./config/object');
答案 1 :(得分:0)
您需要import json from 'filename.json'
。确保使用路径别名时,需要在jest.config.js
配置中的ModuleNameMapper
文件中进行配置。
答案 2 :(得分:0)
{{1}}
答案 3 :(得分:0)
const myJSON = require('./json_file_name.json')
请注意,myJSON
已经是一个对象,无需使用JSON.parse
答案 4 :(得分:0)
使用Typescript
和Vue CLI
时,我要做的就是将resolveJsonModule
添加到tsconfig.ts
:
// tsconfig.ts
{
"compilerOptions": {
"resolveJsonModule": true,
}
}
实际上,这通常可以解决Typescript加载JSON文件的问题。
注意:我正在使用Vue CLI
,因此可能已经在其中预先配置了一些与JSON相关的配置。
答案 5 :(得分:0)
适用于 Typescript / ts-jest 26.5
:
import * as myJson from './mock/MyJson.json';
...
const result = doAnyting(myJson);
答案 6 :(得分:-2)
使用babel-jest
插件来转换代码中Node.js无法本机运行的部分。
可以找到更多相关信息in the Jest docs:
使用Babel
要使用Babel,请安装
babel-jest
和regenerator-runtime
软件包:npm install --save-dev babel-jest regenerator-runtime
注意:如果您使用npm 3或4或Yarn
,则不需要明确安装regenerator-runtime
不要忘记在项目的根文件夹中添加.babelrc文件。例如,如果您正在使用带有babel-preset-es2015和babel-preset-react预设的ES6和React.js:
{ "presets": ["es2015", "react"] }