Как да тествате подпори на компоненти с Enzyme?

Oct 21, 2025

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

Хелън Ким
Хелън Ким
Сертифициран диетолог и преподавател по продукти. Обучавам потребителите за ползите от храненето на растителна основа, по-специално как нашите извлечения поддържат цялостния уелнес и здравословния живот.

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

Разбиране на ензима

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

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

Преди да започнете да тествате реквизити на компоненти с Enzyme, трябва да настроите вашата среда за тестване. Ето стъпките, за да започнете:

  1. Инсталирайте Enzyme и неговите адаптери: Можете да инсталирате Enzyme и неговите адаптери, като използвате npm или yarn. Например, ако използвате React 16, ще трябва да инсталиратеензимиензимен-адаптер-реагира-16.
npm install --save-dev ензим enzyme-adapter-react-16
  1. Конфигурирайте адаптера: Във вашия тестов инсталационен файл конфигурирайте адаптера Enzyme. Ето един пример:
импортиране на ензим от „ензим“; импортиране на адаптер от 'enzyme-adapter-react-16'; Enzyme.configure({ адаптер: нов адаптер() });

Тестване на реквизити на компоненти с плитко рендиране

Плиткото изобразяване е техника, която ви позволява да изобразите компонент "едно ниво дълбоко", без да изобразявате нито едно от неговите деца. Това е полезно за тестване на отделни компоненти в изолация. Ето пример за това как да тествате реквизитите на компоненти с помощта на плитко изобразяване:

импортиране на React от 'react'; импорт { плитък } от 'ензим'; импортиране на MyComponent от './MyComponent'; describe('MyComponent', () => { it('should render with correct props', () => { const props = { title: 'Test Title', description: 'Test Description' }; const wrapper = shallow(<MyComponent {...props} />); expect(wrapper.prop('title')).toBe('Test Title'); очаквам(wrapper.prop('описание')).toBe('Описание на теста'); }); });

В този пример създаваме обект с реквизитите, които искаме да предадем наMyComponent. След това използвамеплитъкза изобразяване на компонента с тези подпори. Накрая използвамеопораметод за достъп до реквизитите и за изказване на техните стойности.

Factory Supply Organic Dried Avocado PowderHigh-quality Turpentine Oil/turpentine Oil Factory Price/mineral Turpentine Oil

Тестване на типове опори

Типовете реквизити са начин за документиране и налагане на типовете реквизити, които компонентът очаква. Можете да използвате Enzyme, за да тествате дали даден компонент правилно обработва типове проп. Ето един пример:

импортиране на React от 'react'; импортиране на PropTypes от 'prop-types'; импорт { плитък } от 'ензим'; const MyComponent = ({ title }) => ( <div>{title}</div>); MyComponent.propTypes = { title: PropTypes.string.isRequired }; describe('MyComponent', () => { it('трябва да изведе предупреждение за липсващ проп', () => { console.error = jest.fn(); shallow(<MyComponent />); expect(console.error).toHaveBeenCalled(); }); });

В този пример използвамеis.fn()да шпионираконзола.грешкаметод. След това изобразяваме компонента, без да предаваме изискванотозаглавиеопора Ако проверката на типа проп е неуспешна, в конзолата ще бъде регистрирано предупреждение и нашият тест ще премине, акоконзола.грешкаметодът е извикан.

Тестване на подпори с пълно изобразяване на DOM

Пълното изобразяване на DOM е полезно, когато трябва да тествате взаимодействието между компонент и неговите деца или когато трябва да тествате поведението на компонента в по-реалистична среда. Ето пример за това как да тествате реквизитите на компоненти, като използвате пълно изобразяване на DOM:

импортиране на React от 'react'; import { mount } from 'enzyme'; импортиране на MyComponent от './MyComponent'; describe('MyComponent', () => { it('трябва да се рендира с правилни реквизити, използвайки пълно DOM рендиране', () => { const props = { title: 'Test Title', description: 'Test Description' }; const wrapper = mount(<MyComponent {...props} />); expect(wrapper.prop('title')).toBe('Test Title'); очаквам(wrapper.prop('описание')).toBe('Описание на теста'); }); });

В този пример ние използвамемонтиранеметод вместоплитък. Theмонтиранепреобразува компонента и неговите деца в реален DOM, което ни позволява да тестваме поведението на компонента в по-реалистична среда.

Тестване на подпори със статично изобразяване

Статичното изобразяване е полезно, когато просто трябва да генерирате HTML изхода на компонент, без да го монтирате в DOM. Ето пример за това как да тествате реквизитите на компоненти с помощта на статично изобразяване:

импортиране на React от 'react'; import { render } from 'enzyme'; импортиране на MyComponent от './MyComponent'; describe('MyComponent', () => { it('трябва да се визуализира с правилни реквизити, използвайки статично рендиране', () => { const props = { title: 'Test Title', description: 'Test Description' }; const wrapper = render(<MyComponent {...props} />); expect(wrapper.find('h1').text()).toBe('Test Title'); очаквам(wrapper.find('p').text()).toBe('Описание на теста'); }); });

В този пример ние използвамеизобразявамметод за генериране на HTML изхода на компонента. След това можем да използваме селектори, подобни на jQuery, за да направим заявка за изхода и да направим твърдения относно реквизитите.

Приложения от реалния свят и свързани продукти

В реалния свят тестването на подпорите на компонентите е от съществено значение за изграждането на висококачествени React приложения. В нашата компания ние не само предоставяме ензими, но също така предлагаме набор от свързани продукти, които могат да подобрят вашия процес на разработка и тестване. Например имамеНикотинамид Мононуклеотид, който има потенциални ползи за здравето и може да се използва в различни приложения. Ние също предлагамеОрганично изсушено авокадо на прах от фабрична доставка, естествена и питателна съставка. И за индустриални приложения имамеВисококачествено терпентиново масло/терпентиново масло с фабрична цена/минерално терпентиново масло, който се използва широко в производствената индустрия.

Заключение

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

Ако се интересувате от закупуването на Enzyme или някой от другите ни продукти, моля не се колебайте да се свържете с нас за обсъждане на поръчката. Ние се ангажираме да предоставяме висококачествени продукти и отлично обслужване на клиентите.

Референции

  • Airbnb. (nd). Enzyme - помощни програми за тестване на JavaScript за React. Извлечено от https://enzymejs.github.io/enzyme/
  • Реагирайте. (nd). React - JavaScript библиотека за изграждане на потребителски интерфейси. Извлечено от https://reactjs.org/
  • шега. (nd). Шега - възхитително тестване на JavaScript. Извлечено от https://jestjs.io/
Изпрати запитване