意外令牌,预期为“;”在NodeJS开玩笑测试中导入JSON时

问题描述 投票:0回答:1

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

FAIL ./user.test.js ● Test suite failed to run. SyntaxError: C:\Users\...\__test__\mocks\registerUser.json: Unexpected token, expected ";" (2:8) 当我将registerUser.json更改为javascript文件时,我可以毫无问题地检索内容,但是当我尝试使用JSON文件时将不起作用。但是我似乎找不到使用json文件时的错误原因。

我当前的结构是:

|-- src
|-- __test__
     |-- mock
        |-- 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"
}
javascript node.js unit-testing jest babel-jest
1个回答
0
投票

我认为您首先需要做的一件事就是在user.test.js的第一行添加一个分号。它应该看起来像这样:

const userRegisterMock = require('./mocks/registerUser.json');
© www.soinside.com 2019 - 2024. All rights reserved.