Любая документация о целях adapter
в enzyme
библиотеке тестирования.
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
configure({ adapter: new Adapter() });
Любая документация о целях adapter
в enzyme
библиотеке тестирования.
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
configure({ adapter: new Adapter() });
Любая документация о целях
adapter
вenzyme
библиотеке тестирования.
Самое близкое, что можно сделать, это сказать "Вам нужно будет установить фермент вместе с адаптером, соответствующим версии реакции (или другую библиотеку компонентов пользовательского интерфейса), которую вы используете".
Документы в основном просто объясняют, как настроить adapter
, и не говорят о его назначении.
что такое адаптер в ферменте
Краткая версия
enzyme
API один и тот же независимо от используемой вами версии React
, но то, как React
отрисовывает и взаимодействует с отрисовываемым, меняется в зависимости от версии React
.
adapter
абстрагирует все, что изменилось в зависимости от версии React
, поэтому основной код enzyme
может остаться прежним.
Подробная версия
mount
и shallow
оба экспортированы из enzyme
< /а>. Давайте сосредоточимся на mount
.
mount
— это функция, которая просто возвращает новый ReactWrapper
< /а>.
ReactWrapper
предоставляет знакомый объект-оболочку с instance
, setState
, find
и т. д.
Реализация всех этих функций одинакова, независимо от того, какую версию React
вы используете...
...но поскольку сам React
с годами изменился, любые детали реализации, изменяющиеся в зависимости от версии React
, абстрагируются с помощью адаптера.
Адаптер извлекается путем вызова getAdapter
. и в первый раз он используется для проверить узлы, переданные в mount
, а затем в создать renderer
для фактического рендеринга узлов.
Для enzyme-adapter-react-16.3
этот вызов createRenderer
получает перенаправлен на this.createMountRenderer
a> и внутри createMountRenderer
вы можете увидеть знакомый вызов ReactDOM.render
, где то, что вы передали, на самом деле отображается с использованием синтаксиса React
v16.
Поиск getAdapter
в ReactWrapper.js отображается везде что adapter
используется для абстрагирования функций, которые изменяются в зависимости от версии React
при использовании mount
...
...и поиск getAdapter
в ShallowWrapper.js везде показывает, что adapter
используется для абстрагирования функциональности, которая изменяется в зависимости от версии React
при использовании shallow
.