Я знаю, что когда у вас есть пустое приложение React, вы настраиваете веб-пакет для использования babel, а затем jest использует конфигурацию babel для компиляции модулей.
Теперь у меня есть приложение, созданное с помощью create-реагировать-приложение , С пакетом. json следующим образом:
{
"name": "it does not matter",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.2.0",
"react-dom": "^16.2.0",
"react-redux": "^7.2.0",
"react-redux-loading": "^1.0.1",
"react-router-dom": "^5.1.2",
"react-scripts": "1.1.1",
"redux": "^4.0.5",
"redux-thunk": "^2.3.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}
С такими вещами я написал простейший тест, который проходит зеленым цветом:
import React from "react";
import ReactDOM from "react-dom";
it("renders LoggedUser without crashing", () => {
const div = document.createElement("div");
const name = "::name::";
const avatarURL = "::avatarURL::";
const loggedUser = { name, avatarURL };
ReactDOM.render(<LoggedUser loggedUser={loggedUser} />, div);
});
Теперь я следую за созданием Реагируйте в приложениях, чтобы добавить библиотеку тестирования React: https://create-react-app.dev/docs/running-tests/#option -2-реагировать-библиотека тестирования
Я следую инструкциям, но при запуске теста он жалуется:
import React from "react";
import { render } from "@testing-library/react";
import { LoggedUser } from "../components/LoggedUser";
it("renders LoggedUser without crashing", () => {
const name = "::name::";
const avatarURL = "::avatarURL::";
const loggedUser = { name, avatarURL };
render(<LoggedUser loggedUser={loggedUser} />);
});
import ArrayFrom from "./polyfills/array.from.mjs";
^^^^^^^^^
SyntaxError: Unexpected identifier
В свой пакет я добавил только зависимости:
"devDependencies": {
"@testing-library/jest-dom": "^5.5.0",
"@testing-library/react": "^10.0.4"
}
И, как предложили документы, создал src / setupTests. js file
// react-testing-library renders your components to document.body,
// this adds jest-dom's custom assertions
import '@testing-library/jest-dom/extend-expect';
Я перепробовал много вещей (файл .babelr c с файлом jest.config и без него ...), но мне не удалось пройти тест, при исправлении одной проблемы появилась другая ...
Может быть, sb знаком с этой проблемой и ее возможными решениями.
Ура!