如何在 Jest 测试中导入 JSON 文件?
Posted
技术标签:
【中文标题】如何在 Jest 测试中导入 JSON 文件?【英文标题】:How to import JSON file on Jest tests? 【发布时间】:2018-03-22 10:07:02 【问题描述】:我正在使用 Jest
测试我的应用程序,但出现如下错误:
SyntaxError: Unexpected token
线路女巫发生的错误是:
import something from "../my-json.json";
如何在 Jest 测试中导入 JSON
文件?
【问题讨论】:
如果您使用该 json 作为模拟,您也可以将其作为对象存储在 js 文件中并导出。简单的解决方案:P 这能回答你的问题吗? is there a require for json in node.js 【参考方案1】:您需要import json from 'filename.json'
。确保如果您使用路径别名,则需要在 ModuleNameMapper
配置中的 jest.config.js
文件中配置它们。
【讨论】:
【参考方案2】:const someObject = require('./somefile.json')
【讨论】:
【参考方案3】:const myJSON = require('./json_file_name.json')
注意myJSON
已经是对象了,不用JSON.parse
【讨论】:
【参考方案4】:如此处所述: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');
【讨论】:
似乎不适用于XML
文件...SyntaxError: Unexpected token '<'
我可以看到原始问题用 javascript 开玩笑。所以我看不到 XML 文件在哪里混在一起。能否请您详细说明...?【参考方案5】:
当使用Typescript
和Vue CLI
时,我需要做的就是将resolveJsonModule
添加到tsconfig.ts
:
// tsconfig.ts
"compilerOptions":
"resolveJsonModule": true,
这其实解决了Typescript对JSON文件的一般加载问题。
注意:我使用的是Vue CLI
,因此可能已经在此处预先配置了一些与 JSON 相关的配置。
【讨论】:
【参考方案6】:适用于 Typescript / ts-jest 26.5
:
import * as myJson from './mock/MyJson.json';
...
const result = doAnyting(myJson);
【讨论】:
japp,import myJson from './mock/MyJson.json';
为我返回 undefined。更改为 import * as myJson from './mock/MyJson.json';
使用 Typescript 和 ts-node 成功【参考方案7】:
您需要在所有 '' 之前删除 ','。我通过测试和错误找到了这个解决方案。
【讨论】:
请更具描述性。以上是关于如何在 Jest 测试中导入 JSON 文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Jest - Enzyme 测试 React 中 mapStateToProps 中的方法
在 Nuxt JS 中导入 SVG 时,Jest 中出现“[Vue 警告]:无效的组件定义”