我正在使用Jest测试我的应用程序,但它得到了一个错误,如:
Jest
SyntaxError: Unexpected token }
线路开关出现的错误是:
import { something } from "../my-json.json";
如何在Jest测试中导入JSON文件?
JSON
syqv5f0l1#
如下所述:is there a require for json in node.js可以用途:
import someObject from ('./somefile.json')
这也应该起作用:
const testObject = require('../config/object');
然而,当我使用jest进行测试时,我用.js扩展名保存json并在里面使用module.exports,然后我在主文件中解构了这个对象。
module.exports = { "testObject": { "name": testName "surname": testSurname } }
const { testObject } = require('./config/object');
2eafrhcq2#
使用Typescript /ts-jest 26.5:
ts-jest 26.5
import * as myJson from './mock/MyJson.json'; ... const result = doAnyting(myJson);
ttisahbt3#
当使用Typescript和Vue CLI时,我需要做的就是将resolveJsonModule添加到tsconfig.ts:
Typescript
Vue CLI
resolveJsonModule
tsconfig.ts
// tsconfig.ts { "compilerOptions": { "resolveJsonModule": true, } }
这实际上解决了Typescript加载JSON文件的问题。注意:我使用的是Vue CLI,所以可能已经预先配置了一些JSON相关的配置。
k2arahey4#
你需要import json from 'filename.json'。确保如果你使用路径别名,你需要在ModuleNameMapper配置中的jest.config.js文件中配置它们。
import json from 'filename.json'
ModuleNameMapper
jest.config.js
j13ufse25#
const myJSON = require('./json_file_name.json')
注意,myJSON已经是一个对象,不需要使用JSON.parse
myJSON
JSON.parse
46qrfjad6#
const someObject = require('./somefile.json')
7fyelxc57#
您需要删除所有“}”之前的“,”。我通过测试和错误找到了这个解决方案。
ilmyapht8#
在tsconfig.spec.json编译器选项中设置"esModuleInterop": true,。
tsconfig.spec.json
"esModuleInterop": true,
8条答案
按热度按时间syqv5f0l1#
如下所述:is there a require for json in node.js可以用途:
这也应该起作用:
然而,当我使用jest进行测试时,我用.js扩展名保存json并在里面使用module.exports,然后我在主文件中解构了这个对象。
2eafrhcq2#
使用Typescript /
ts-jest 26.5
:ttisahbt3#
当使用
Typescript
和Vue CLI
时,我需要做的就是将resolveJsonModule
添加到tsconfig.ts
:这实际上解决了Typescript加载JSON文件的问题。
注意:我使用的是
Vue CLI
,所以可能已经预先配置了一些JSON相关的配置。k2arahey4#
你需要
import json from 'filename.json'
。确保如果你使用路径别名,你需要在ModuleNameMapper
配置中的jest.config.js
文件中配置它们。j13ufse25#
注意,
myJSON
已经是一个对象,不需要使用JSON.parse
46qrfjad6#
7fyelxc57#
您需要删除所有“}”之前的“,”。我通过测试和错误找到了这个解决方案。
ilmyapht8#
在
tsconfig.spec.json
编译器选项中设置"esModuleInterop": true,
。