如何在Jest测试中导入JSON文件?

tct7dpnv  于 2023-04-03  发布在  Jest
关注(0)|答案(8)|浏览(203)

我正在使用Jest测试我的应用程序,但它得到了一个错误,如:

SyntaxError: Unexpected token }

线路开关出现的错误是:

import { something } from "../my-json.json";

如何在Jest测试中导入JSON文件?

syqv5f0l

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,然后我在主文件中解构了这个对象。

  • JSON文件(object.js):
module.exports = {
  "testObject":
  {
      "name": testName
      "surname": testSurname
  }
}
  • 主文件
const { testObject } = require('./config/object');
2eafrhcq

2eafrhcq2#

使用Typescript /ts-jest 26.5

import * as myJson from './mock/MyJson.json';

...

const result = doAnyting(myJson);
ttisahbt

ttisahbt3#

当使用TypescriptVue CLI时,我需要做的就是将resolveJsonModule添加到tsconfig.ts

// tsconfig.ts

{
  "compilerOptions": {
    "resolveJsonModule": true,
  }
}

这实际上解决了Typescript加载JSON文件的问题。
注意:我使用的是Vue CLI,所以可能已经预先配置了一些JSON相关的配置。

k2arahey

k2arahey4#

你需要import json from 'filename.json'。确保如果你使用路径别名,你需要在ModuleNameMapper配置中的jest.config.js文件中配置它们。

j13ufse2

j13ufse25#

const myJSON = require('./json_file_name.json')

注意,myJSON已经是一个对象,不需要使用JSON.parse

46qrfjad

46qrfjad6#

const someObject = require('./somefile.json')
7fyelxc5

7fyelxc57#

您需要删除所有“}”之前的“,”。我通过测试和错误找到了这个解决方案。

ilmyapht

ilmyapht8#

tsconfig.spec.json编译器选项中设置"esModuleInterop": true,

相关问题