如何在 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】:

当使用TypescriptVue 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 vue 中导入 graphql 查询文件

如何使用 Jest - Enzyme 测试 React 中 mapStateToProps 中的方法

在 Nuxt JS 中导入 SVG 时,Jest 中出现“[Vue 警告]:无效的组件定义”

如何在 ECMAScript 6 中导入 JSON 文件?

使用 Typescript 从 Jest 手动模拟中导入函数

如何使用 ECMA 模块在 nodejs 中导入 .json 文件?