Как проверить компоненты с React.cloneElement в React с использованием фермента?

Aug 08, 2025

Оставить сообщение

Джеймс Ли
Джеймс Ли
Процесс -инженер на нашей фабрике GMP. Моя роль включает в себя усовершенствование процессов экстракции, чтобы обеспечить масштабируемость и последовательность в производстве порошка нашего растения при сохранении высококачественных стандартов.

Тестирование компонентов в React является важной частью процесса разработки для обеспечения надежности и функциональности вашего приложения. Один мощный метод в реагировании используетсяReact.CloneElementв сочетании с ферментом. Как поставщик ферментов, я здесь, чтобы провести вас через процесс тестирования компонентов сReact.CloneElementиспользуя фермент.

Понимание React.cloneelement

React.CloneElementэто встроенный - функция в React, которая позволяет вам клонировать существующий элемент React и необязательно передать ему новые реквизиты. Это может быть чрезвычайно полезно, если вы хотите изменить поведение или внешний вид компонента во время тестирования. СинтаксисReact.CloneElementЭто следующее:

React.CloneElement (элемент, [реквизит], [... дети])

Здесь,элементэто элемент, который вы хотите клонировать,реквизитДополнительный объект, содержащий новый реквизит, который вы хотите передать к клонированному элементу, идетиявляются дополнительными новыми детьми для клонированного элемента.

Paridis Rhizoma Extract PolyphyllinNatural Organic Beetroot Powder

Настройка среды тестирования

Прежде чем мы начнем тестировать сReact.CloneElementИспользуя фермент, нам нужно настроить правильную среду тестирования. Во -первых, убедитесь, что в вашем проекте установлены React и фермент. Вы можете установить фермент и его адаптер для реагирования с помощью NPM или пряжи:

Установка NPM-фермент-энзийный фермент-диван

Затем настройте фермент для использования соответствующего адаптера в файле настройки теста. Для React 16 это будет выглядеть так:

импортный фермент из «фермента»; Импорт адаптер из «Фермент-адаптер -реакция-16»; Enzyme.configure ({adapter: new adapter ()});

Компоненты тестирования с React.CloneElement и ферментом

Давайте предположим, что у нас есть простой компонент ReactКнопкаэто принимаетнеполноценныйProp:

Импорт реагирует от'react '; const button = ({отключен, дети}) => {return (<button Disabled = {отключить}> {дети} </button>); }; Экспорт кнопки по умолчанию;

Мы хотим проверить, какКнопкакомпонент ведет себя, когданеполноценныйопора изменяется. Мы можем использоватьReact.CloneElementВ наших ферментативных тестах для достижения этого.

Импорт реагирует от'react '; Импорт {неглубокий} из 'фермента'; Кнопка импорта из './button'; Опишите ('Component', () => {it ('должен быть отключен, когда отключенная пропь верно', () => {const riginalelement = <wutton> Нажмите Me </button>; const clonelement = React.CloneElement (OriginalElement, {Disabled: true}); const rupper = неглубокий (cloneLement); Ожидайте (warper.find ('button'). prop ('disabled')). tobe (true); weard (warper.find ('button'). prop ('Отключен')). Tobe (false);

В приведенных выше тестах мы сначала создаем оригиналКнопкаэлемент. Тогда мы используемReact.CloneElementЧтобы создать новый элемент с желаемымнеполноценныйпроп. Наконец, мы используем ферментмелкийрендеринг для визуализации клонированного элемента и проверить, еслинеполноценныйопоракнопкаэлемент установлен правильно.

Расширенные сценарии тестирования

В более сложных сценариях вы можете протестировать компоненты, в которых вложены детей или компоненты, которые зависят от контекста. Давайте рассмотрим компонент под названиемParentComponentэто делает аChildComponentвнутри:

Импорт реагирует от'react '; импортировать ChildComponent из './childComponent'; const parentcomponent = () => {return (<div> <childComponent /> < /div>); }; экспорт по умолчанию ParentComponent;

Мы можем использоватьReact.CloneElementпередать дополнительные реквизитыChildComponentво время тестирования.

Импорт реагирует от'react '; Импорт {неглубокий} из 'фермента'; импортировать ParentComponent из './parentcomponent'; импортировать ChildComponent из './childComponent'; Описать ('ParentComponent', () => {it ('должен передать дополнительные реквизиты ChildComponent', () => {const warper = неглубокий (<parentcomponent />); const chiled = warper.find (childComponent); const clonischild = React.cloneelement (child.get (0), {testprop: 'testvalue'}; мелкий (клонировал);

В этом примере мы сначала неглубоваParentComponentи найтиChildComponentвнутри. Тогда мы используемReact.CloneElementклонироватьChildComponentи передать ему новую опору. Наконец, мы неглубовались клонированнымиChildComponentи проверьте, правильно ли установлена новая опора.

Использование React.CloneElement с контекстом

Контекст React - это способ обмена данными между компонентами без необходимости передавать реквизиты вручную по каждому уровню компонентного дерева. Вы также можете использоватьReact.CloneElementпроверить компоненты, которые полагаются на контекст.

Давайте предположимКонтекст -провалениКонтекст -образныйкомпонент:

Импорт React, {createContext, USECONTEXT} от'React '; const myContext = createContext (); const contextprovider = ({kids}) => {const contextValue = {message: 'Привет из контекста'}; return (<myContext.provider value = {contextValue}> {дети} </mycontext.provider>); }; const contextconsumer = () => {const {message} = useContext (myContext); return <viv> {сообщение} </div>; }; Export {ContextProvider, ContextConsumer};

Мы можем использоватьReact.CloneElementЧтобы проверитьКонтекст -образныйкомпонент в изоляции путем предоставления значения контекста.

Импорт реагирует от'react '; Импорт {неглубокий} из 'фермента'; Import {ContextProvider, ContextConsumer} от './contextComponents'; Описать ('ContextConsumer', () => {it ('должен отображать правильное сообщение из контекста', () => {const mockContextValue = {Сообщение: 'Mock Message'}; const riginalElement = <contextConsumer />; const cloneedelement = reAct.cloneelement (OriginalElement, {Context: MockContextVelem {CloneDelement} </contextProvider>);

Заключение

Тестирование компонентов сReact.CloneElementИспользование фермента - это мощный метод, который позволяет вам модифицировать и проверять поведение компонентов React в различных сценариях. Чувствуете ли вы простые компоненты или сложные, которые полагаются на контекст,React.CloneElementможет помочь вам создать более надежные и надежные тесты.

Если вы заинтересованы в расширении возможностей реагирования, вы также можете заинтересоваться в некоторых из наших связанных продуктов. Проверьте нашНатуральная органическая свековая порошкаВМасло розмари, иЭкстракт ризомы Paridis polyphyllinПолем

Если у вас есть какие -либо вопросы или вы заинтересованы в покупке наших ферментных продуктов для ваших потребностей в тестировании, пожалуйста, свяжитесь с нами для подробного обсуждения. Мы здесь, чтобы предоставить вам лучшие решения для ваших требований к тестированию реагирования.

Ссылки

  • Реагировать официальную документацию
  • Официальная документация фермента
Отправить запрос