Я создал приложение реагирования, которое хочу протестировать, используя комбинацию мокко / чай / энзим, но у меня возникают проблемы с настройкой тестовых файлов.
Я решил следовать руководству по созданиютесты mocha, которые можно найти здесь: https://www.robinwieruch.de/react-testing-mocha-chai-enzyme-sinon. Я дошел до того, что создал свой скрипт, использующий команду mocha. Следующее
Это мой package.json:
{
"name": "congressforme-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"@babel/core": "^7.6.4",
"@babel/register": "^7.6.2",
"@types/react": "^16.9.4",
"@types/react-bootstrap": "^0.32.20",
"@types/react-dom": "^16.9.1",
"@types/react-router-bootstrap": "^0.24.5",
"@types/react-router-dom": "^5.1.0",
"axios": "^0.19.0",
"bootstrap": "^4.3.1",
"bootstrap-3-card": "^0.2.0",
"chai": "^4.2.0",
"enzyme": "^3.10.0",
"enzyme-adapter-react-16": "^1.15.1",
"ignore-styles": "^5.0.1",
"jquery": "^3.4.1",
"jsdom": "^15.2.0",
"mdbreact": "^4.21.0",
"mocha": "^6.2.2",
"newman": "^4.5.5",
"popper.js": "^1.15.0",
"react": "^16.10.1",
"react-bootstrap": "^1.0.0-beta.12",
"react-bootstrap-card": "^0.2.1",
"react-dom": "^16.9.0",
"react-paginate": "^6.3.0",
"react-router-bootstrap": "^0.25.0",
"react-router-dom": "^4.3.1",
"react-scripts": "3.1.2",
"react-twitter-embed": "^2.0.8",
"typescript": "^3.6.3"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"deploy": "aws s3 sync build/ s3://congressforme",
"test": "react-scripts test",
"eject": "react-scripts eject",
"my-tests": "mocha --require @babel/register --require ./test/helpers.js --require ./test/dom.js --require ignore-styles ./src/**/*.spec.js"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
И это сообщение об ошибке, которое я получаю:
ERROR: Unexpected token {
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! congressforme-app@0.1.0 my-tests: `mocha --require `@babel/register --require ./test/helpers.js --require ./test/dom.js --require ignore-styles ./src/**/*.spec.js
У меня только 1 тестовый файл вмоя папка src. Он называется App.spec.js
Вот как это выглядит:
import React from 'react';
import App from './App';
import Navbar from "react-bootstrap";
// this is a testing suite app component
describe('App Component', () => {
// this is a single test in the testing suite
it('renders the Counter wrapper', () => {
const wrapper = shallow(<App />);
expect(wrapper.find(Navbar)).to.have.length(1);
});
});
Однако, даже если я полностью удалю содержимое App.spec.js, эта ошибка все равнопроисходит.