ReactTestUtils перемещен
Я начинаю изучать React, и пока я делал несколько тестов, я заметил два предупреждающих сообщения:
Предупреждение. Команда ReactTestUtils была перемещена в режим реагирования/тестовые утилиты. Обновите ссылки, чтобы удалить это предупреждение.
Предупреждение. Мелкий рендерер был перемещен в обработчик реакции-реакции/мелкий. Обновите ссылки, чтобы удалить это предупреждение.
Они не препятствуют запуску тестов или правильной проверки, но всегда есть эта ошибка.
Посмотрев на документы, я нашел эту страницу, даже после того, как я включил те строки, которые они рекомендуют, появляется предупреждающее сообщение.
Я пытаюсь выполнить очень простой тест, это мой код:
import React from "react";
import toJson from "enzyme-to-json";
import { shallow } from "enzyme";
import { About } from "./About";
describe('Rendering test', () => {
const component = shallow(<About />);
const tree = toJson(component);
it('Should render the About component', () => {
expect(tree).toMatchSnapshot();
})
it('Should not contain an h2 element', () => {
expect( component.contains('h2') ).toBe(false);
})
})
Что мне нужно сделать, чтобы решить эти предупреждения? Я уже обновил все свои пакеты до последних версий.
Ответы
Ответ 1
Я думаю, что это исходит от использования функции shallow
render от фермента, которая еще не обновлена для v15.5 (есть pull request, хотя).
Вы можете попробовать использовать одну из других функций рендеринга (render
или mount
), но это изменит семантику вашего теста (и может или не может выдавать предупреждение).
Другой вариант - не использовать фермент и использовать react-test-renderer/shallow
самостоятельно, но API-интерфейс фермента довольно хорош для тестирования компонентов.
Мой совет - дождаться версии фермента и просто жить с предупреждением на данный момент.
Ответ 2
Если вы используете React 0.14 или React < 15.5 в дополнение к ферменту, вы должны будете убедиться, что у вас также установлены следующие модули npm, если они еще не были:
npm i --save-dev react-addons-test-utils react-dom
Если вы используете React >= 15.5, помимо фермента, вы должны будете убедиться, что у вас также установлены следующие модули npm, если они еще не были:
npm i --save-dev react-test-renderer react-dom
Ответ 3
Обновление Августа 2017 года
Если вы установите react-test-renderer
, он будет работать, но все версии react-*
должны совпадать:
например.
[email protected]
[email protected]
[email protected]
[email protected]
В моей среде работает только эта конфигурация.