Как да тествам компоненти с React.strictMode в React с помощта на ензим?

May 21, 2025

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

Майкъл Браун
Майкъл Браун
Растителен биолог, специализиран в отглеждането на киви. С 1 милион декара, посветени на насажденията на Киви, моята роля включва оптимизиране на условията на растеж и извличане на най -добрите хранителни вещества от тези суперфрути за нашите прахове.

Тестването на компонентите в React е решаваща част от процеса на разработка, като се гарантира, че приложението ви функционира както се очаква и остава стабилна с развитието си. React.strictmode е ценен инструмент, който ви помага да идентифицирате потенциални проблеми във вашите компоненти по време на развитието. В тази публикация в блога, като доставчик на ензими, ще ви преведа през процеса на тестване на компоненти с React.strictmode, използвайки ензим.

Разбиране на React.StrictMode

React.StrictMode е компонент на обвивката, осигурен от React, който активира допълнителни проверки и предупреждения за своите потомци. Това не прави никакъв видим потребителски интерфейс; Вместо това, той ви помага да намерите често срещани грешки и потенциални проблеми във вашите компоненти. Когато увиете част от приложението си с React.strictmode, React ще извърши допълнителни проверки, като например откриване на методи на Legacy Lifecycle, предупреждавайки за неправилно използване наuseStateиUserEducerкуки и идентифициране на неочаквани странични ефекти.

импортиране реагира от 'React'; const app = () => {return (<react.strictmode> {/ * Вашите компоненти отиват тук */} </react.strictmode>); }; Експортиране на приложение по подразбиране;

Защо да използвате ензим за тестване?

Ензимът е помощна програма за тестване на JavaScript за React, която улеснява тестване на изхода на вашите компоненти на реагирането. Той предоставя набор от методи за манипулиране, преследване и заявка на виртуалния DOM на вашите компоненти на реактивите. С ензима можете да симулирате взаимодействието на потребителите, състоянията на тестовите компоненти и да проверите изобразения изход. Като доставчик на ензими мога да свидетелствам за неговата гъвкавост и лекота на използване, което го прави популярен избор сред разработчиците на React за тестване.

Настройване на тестовата среда

Преди да започнете да тествате компонентите си с React.strictmode с помощта на ензим, трябва да настроите вашата среда за тестване. Първо, ще трябва да инсталирате необходимите пакети. Ако използвате NPM, можете да изпълнявате следните команди:

Инсталиране на NPM-ензим-Save-Dev ензим-адаптер-REACT-16 React-Test-рендер

Тук,ензиме помощната програма за тестване,Ензим-адаптер-Реакт-16е адаптерът за React 16 (може да се наложи да коригирате версията според вашата реакция) иРеагиран тест-рендерсе използва за създаване на компоненти на реагиране на чисти JavaScript обекти.

След това трябва да конфигурирате ензима да използва адаптера. Можете да направите това във файл за настройка, например,setuptests.js:

внос ензим от „ензим“; Импортирайте адаптер от „Ензим-адаптер-React-16 '; Enzyme.configure ({адаптер: нов адаптер ()});

Писане на тестове с React.strictmode и ензим

Да предположим, че имате прост компонент за реакция, нареченБутонТова прави бутон с някакъв текст.

импортиране реагира от 'React'; const button = ({text}) => {return <button> {text} </button>; }; Бутон по подразбиране на експортиране;

Сега, нека напишем тест за този компонент, използвайки ензим и React.strictmode.

импортиране реагира от 'React'; импортиране {плитко} от 'ензим'; бутон за импортиране от './button'; опис ('бутон компонент', () => {it ('трябва да направи правилния текст', () => {const text = 'щракнете върху мен'; const wrapper = плитка (<react.strictmode> <бутон text = {text} /> < /react.strictmode>); бутон const = wrapper.find (бутон '); Очаквайте (бутон. });

В този тест използвамеплиткаметод за изобразяване от ензим, за да се направиБутонкомпонент, обвит вReact.strictmode. Тогава намирамебутонЕлемент, използващНамеретеметод и проверете дали текстът вътре в бутона съвпада стекстРеп минахме.

Промяна на състоянието на компонента на тестване

Ензимът също ви позволява да тествате промени в състоянието на компонента. Да речем, че имате извикан компонентБроячкоято има променлива на състояниетоБройи бутон за увеличаване на броя.

import React, {USESTATE} от 'React'; const counter = () => {const [count, setCount] = USESTATE (0); const increment = () => {setCount (count + 1); }; return (<div> <p> count: {count} </p> <бутон onclick = {increment}> increment </boutn> </div>); }; брояч на експортиране по подразбиране;

Ето как можете да тествате промяната на състоянието в този компонент:

импортиране реагира от 'React'; импортиране {mount} от 'ензим'; брояч на импортиране от './counter'; Опишете ('Counter Component', () => {it ('трябва да увеличите броя, когато бутонът се щракне', () => {const wrapper = mount (<react.strictmode> <counter /> < /react.strictmode>); const button = wrapper.find ('бутон'); const oritalcount = parseint (wrapper.find ('p'). 10);

В този тест използвамемонтиранеметод от ензим за изобразяване наБроячкомпонент, обвит вReact.strictmode. След това намираме бутона, получаваме първоначалната стойност на броя, симулираме щракване върху бутона и проверяваме дали броят е увеличен.

Тестване на компонентни методи на жизнения цикъл

React.strictmode може да ви помогне да откриете наследени методи за жизнен цикъл във вашите компоненти. Да речем, че имате компонент с наследствоComponentWillReceivePropsметод.

import React, {компонент} от 'React'; клас LegacyComponent разширява компонента {componentWillReceiveProps (nextProps) {// някои логики тук} render () {return <div> {this.props.text} </div>; }} Експортиране по подразбиране LegacyComponent;

Когато тествате този компонент с React.strictmode, React ще издаде предупреждение за използването на метода на Legacy Lifecycle.

импортиране реагира от 'React'; импортиране {плитко} от 'ензим'; внос LegacyComponent от './LegacyComponent'; опишете ('LegacyComponent', () => {it ('трябва да се прави правилно', () => {const text = 'hello'; const wrapper = плитка (<react.strictmode> <legacyComponent text = {text} /> < /react.strictmode>); очаквайте (wrapper.find ('divt.).).).

Това предупреждение ви помага да идентифицирате и актуализирате вашите компоненти, за да използвате новите методи или куки на жизнения цикъл.

Asclepius Supply High Quality Psicose Powder /d Psicose PowderMedium Chain Triglycerides

Тестване на куки

Ако вашият компонент използва куки, React.strictmode също може да ви помогне да откриете потенциални проблеми. Например, да кажем, че имате персонализирана кука, която извлича данни от API.

import React, {Usestate, useeffect} от 'React'; const usefetch = (url) => {const [data, setData] = useState (null); const [зареждане, зареждане] = USESTATE (вярно); useeffect (() => {const fetchData = async () => {опитайте {const assion = чакайте fetch (url); const json = чакайте отговор.json (); setData (json);} улов (грешка) {console.error (грешка);} накрая {settoyning (false);}}; fetchdata (); връщане {данни, зареждане}; }; const dataFetcher = ({url}) => {const {data, зареждане} = usefetch (url); ако (зареждане) {return <p> зареждане ... </p>; } return <pre> {json.stringify (данни, null, 2)} </pre>; }; Експортиране по подразбиране DataFetcher;

Ето как можете да тествате този компонент:

импортиране реагира от 'React'; импортиране {mount} от 'ензим'; импортиране на данни от данни от './DataFetcher'; опишете ('DataFetcher компонент', () => {it ('трябва да прави зареждане на текст първоначално', () => {const url = 'https://example.com/api/Data'; const wrapper = mount (<react.strictmode> <dataFetcher url = {url}/> </reactmode>); очаквайте (wrapper.find ('p'). text ()). tobe ('зареждане ...');

React.strictmode ще гарантира, чеuseeffectкука вИзползванеПерсонализираната кука се нарича правилно и че няма неочаквани странични ефекти.

Заключение

Тестването на компоненти с React.strictMode с помощта на ензим е ефективен начин да се гарантира качеството и стабилността на вашите реактивни приложения. React.strictmode ви помага да идентифицирате потенциални проблеми в началото на процеса на разработка, докато ензимът осигурява мощен набор от инструменти за тестване на вашите компоненти. Като доставчик на ензими ви насърчавам да включите тези практики за тестване във вашия работен процес на развитие.

Ако се интересувате от висококачествени ензимни продукти или други свързани с тях консумативи, ние предлагаме и гама от продукти катоAsclepius доставя висококачествен Psicose Powder /D Psicose Powder,Естествен фосфатидилсерин 70%, прахообразно фосфатидилсериниТриглицериди със средна верига. Ако имате някакви въпроси или искате да обсъдите потенциална покупка, моля, не се колебайте да се свържете с нас за повече подробности и да започнете договаряне на поръчки.

ЛИТЕРАТУРА

  • Документация за реагиране: https://reactjs.org/docs/strict-mode.html
  • Ензимна документация: https://enzymejs.github.io/enzyme/
Изпрати запитване