gpt4 book ai didi

javascript - 意外 token ,在 NodeJS Jest 测试中导入 JSON 时预期为 ";"

转载 作者:行者123 更新时间:2023-12-05 06:17:36 37 4
gpt4 key购买 nike

我有一个使用 Jest 和 babel 的 NodeJS 项目。运行测试时出现以下错误:

失败./user.test.js
● 测试套件运行失败。
SyntaxError: C:\Users\...\__test__\mocks\registerUser.json: 意外的标记,需要“;” (2:8)
当我将 registerUser.json 更改为 javascript 文件时,我能够毫无问题地检索内容,但是当我尝试使用 JSON 文件时,它将不起作用。但是我在使用json文件时似乎找不到错误的原因。

我目前的结构是这样的:

|-- src
|-- __test__
|-- mocks
|-- registerUser.json
|-- user.test.js
|-- tmp
.babelrc
.eslintignore
.eslintrc
.gitignore
.prettierrc
jest.config.js
package.json

user.test.js

const userRegisterMock = require('./mocks/registerUser.json');

describe('User', () => {
it('[SUCCESS] should be able to register', async () => {
// console.log(userRegisterMock)
expect(true).toBe(true);
});
});

jest.config.js

    module.exports = {
bail: 1,
testEnvironment: 'node',
clearMocks: true,
collectCoverage: true,
collectCoverageFrom: [
'src/**',
'!src/helpers/**',
'!src/app.js',
'!src/server.js',
'!src/database/**',
'!src/config/**'
],
coverageDirectory: '__tests__/coverage',
coverageReporters: ['text', 'lcov'],
coverageThreshold: {
global: {
branches: 100,
functions: 100,
lines: 100,
statements: 100
}
},
moduleFileExtensions: ['js', 'json', 'jsx', 'ts', 'tsx', 'node'],
resetModules: false,
testMatch: ['**/__tests__/**/*.test.js'],
transform: {
'.(js|jsx|ts|tsx)': 'babel-jest'
}
};

.babelrc

{
"presets": [
["@babel/preset-env", {
"useBuiltIns": "usage", // or "entry"
"corejs": 3,
"targets": {
"node": "current"
}
}]
],
"plugins": [
["@babel/plugin-transform-modules-commonjs"],
["@babel/plugin-transform-runtime", {
"regenerator": true
}]
]
}

registerUser.json

{
"name": "Test Case",
"country": "Brazil",
"birthdate": "25/03/1994",
"sex": "Masculino",
"nationality": "Brasileiro"
}

最佳答案

您的转换正则表达式包含 .js 匹配 `.json

如果您在末尾添加 $,您将只选择 .js 结尾的文件。

transform: {
'.(js|jsx|ts|tsx)$': 'babel-jest'
}

更好的正则表达式是:'^.+\\.(js|jsx|ts|tsx)$': 'babel-jest'

关于javascript - 意外 token ,在 NodeJS Jest 测试中导入 JSON 时预期为 ";",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61554530/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com