효소를 사용하여 React.lazy로 구성 요소를 테스트하는 방법은 무엇입니까?

May 16, 2025

메시지를 남겨주세요

사라 마르티네즈
사라 마르티네즈
유기 농업 전문 농업 과학자. 나는 4,000,000 에이커의 녹차 농장을 관리하여 추출물에 대해 최고 품질의 잎을 산출하는 지속 가능한 관행을 보장합니다.

React Applications의 구성 요소 테스트는 개발 프로세스의 중요한 부분으로, 각 응용 프로그램의 각 부분이 예상대로 작동하도록합니다. Code Spliting 및 Lazy Loying을 구성 할 수있는 React.lazy를 처리 할 때는 테스트가 조금 더 어려워 질 수 있습니다. 효소 공급 업체로서 개발자가 React.lazy를 사용하여 구성 요소 테스트에 어려움을 겪는 수많은 시나리오를 만났습니다. 이 블로그에서는 효소를 사용하여 React.lazy로 구성 요소를 테스트하기위한 효과적인 전략을 공유하겠습니다.

High-quality Food Grade Castor Oil/100% Castor Oil

React.lazy 및 코드 분할 이해

테스트를 시작하기 전에 React.lazy가하는 일을 이해하는 것이 필수적입니다. React.lazy는 동적 가져 오기를 일반 구성 요소로 렌더링 할 수있는 함수입니다. 이는 코드 분할에 특히 유용하며, 필요한 경우에만 구성 요소를로드하여 응용 프로그램의 초기 번들 크기를 줄이는 데 도움이됩니다.

const lazycomponent = react.lazy (() => import ( './ LazyComponent')); 함수 app () {return (<div> <reft.suspense follback = {<div>로드 ... </div>}> <LazyComponent/> </React.suspense> </div>); }

위 코드에서Lazycomponent게으르게로드됩니다REACT.SUSPENSE구성 요소가로드되는 동안 폴백 UI를 표시하는 데 사용됩니다.

테스트 환경 설정

효소를 사용하여 React.lazy로 구성 요소를 테스트하려면 적절한 테스트 환경이 설정되어 있어야합니다. 먼저 필요한 종속성이 설치되어 있는지 확인하십시오. 반응, 효소 및 농담 (또는 다른 테스트 프레임 워크)이 필요합니다.

NPM 설치 -Save-Dev 효소 효소 적응기 -React-16 농담

다음으로 효소를 구성하여 React 버전과 함께 작동합니다. asetuptests.js프로젝트의 루트 디렉토리에 파일을 파일하고 다음 코드를 추가합니다.

'효소'로부터의 효소 수입; 'Enzyme-Adapter-React-16'에서 수입 어댑터; enzyme.configure ({어댑터 : 새 어댑터 ()});

React.lazy로 구성 요소를 테스트합니다

react.lazy로 구성 요소를 테스트 할 때는 명심해야 할 몇 가지가 있습니다. Lazy-Loaded 구성 요소가 비동기식으로로드되므로 테스트에서 로딩 프로세스의 비동기 특성을 처리해야합니다.

폴백 UI 테스트

가장 먼저 테스트 할 수있는 것은 폴백 UI입니다. 게으른로드 구성 요소가로드되면 폴백 UI를 표시해야합니다.

'React'에서 React React; '효소'에서 {mount} 가져 오기; './app'에서 앱 가져 오기; 설명 ( 'app', () => {it ( '게으른 구성 요소가로드되는 동안 폴백 UI를 렌더링해야합니다', () => {const wrapper = mount (<app />); excling (wrapper.find ( 'div'). text ()). tobe ( 'loading ...');});

이 테스트에서 우리는 마운트합니다구성 요소 및 폴백 UI가 표시되는지 확인하십시오.

게으른로드 구성 요소 테스트

게으른로드 된 구성 요소 자체를 테스트하려면로드 될 때까지 기다려야합니다. 이를 수행하는 한 가지 방법은 사용하는 것입니다행동React의 테스트 유틸리티에서.

'React'에서 React React; '효소'에서 {mount} 가져 오기; 'react-dom/test-utils'에서 {act} 가져 오기; './app'에서 앱 가져 오기; 설명 ( 'app', () => {it ( '로드 된 후에 게으른 구성 요소를 렌더링해야한다', async () => {let wrapper; at act (async () => {wrapper = mount (<app />);}); wrapper.update (); thrapper.find ( 'lazycomponent')));

이 테스트에서 우리는 사용합니다행동마운팅을 감싸기 위해요소. 이를 통해 게으른 부하 구성 요소가 렌더링되는지 확인하기 전에 모든 상태 업데이트 및 부작용이 완료되도록합니다.

게으른 하중의 오류 처리

테스트의 또 다른 중요한 측면은 게으른 부하의 오류를 처리하는 것입니다. 게으른로드 구성 요소를로드하는 동안 오류가있는 경우REACT.SUSPENSE우아하게 처리해야합니다.

High Quality Dried Okra Seed Powder/okra Seed Extract Powder
'React'에서 React React; '효소'에서 {mount} 가져 오기; 'react-dom/test-utils'에서 {act} 가져 오기; './app'에서 앱 가져 오기; 설명 ( 'app', () => {it ( '게으른 로딩의 오류를 처리해야한다', async () => {const mockerror = new Error ( '부하 구성 요소'); />) 래퍼.

이 테스트에서 우리는 사용합니다이다. 스파이조롱하기 위해react.lazy기능하고 오류를 던집니다. 그런 다음 오류 처리 UI가 표시되는지 확인합니다.

시험을 위해 효소의 특징을 사용합니다

효소는 react.lazy로 구성 요소를 테스트하는 데 유용 할 수있는 몇 가지 기능을 제공합니다. 예를 들어, 사용할 수 있습니다시뮬레이션구성 요소의 이벤트를 트리거합니다.

'React'에서 React React; '효소'에서 {mount} 가져 오기; 'react-dom/test-utils'에서 {act} 가져 오기; './app'에서 앱 가져 오기; 설명 ( 'app', () => {it ( '게으른 구성 요소의 클릭 이벤트를 처리해야합니다', async () => {let 랩퍼; Async () => {wrapper = mount (<app />);}); wrapper.update (); const lazycomponent = wrapper.find ( 'lazycomponent'); expling (lazycomponent.state ( 'clicked'). tobe (true);

이 테스트에서는 게으른로드 구성 요소에 대한 클릭 이벤트를 시뮬레이션하고 구성 요소의 상태가 그에 따라 업데이트되었는지 확인합니다.

결론

효소를 사용하여 React에서 react.lazy를 사용하여 성분을 테스트하려면 효소를 사용하여 React의 비동기 특성을 신중하게 처리해야합니다. 이 블로그에 요약 된 전략을 따르면 구성 요소를 효과적으로 테스트하고 응용 프로그램이 예상대로 작동하는지 확인할 수 있습니다.

효소와 관련된 더 많은 제품을 탐색하는 데 관심이 있다면 개발 공정을 향상시킬 수있는 다양한 고품질 효소 제품을 제공합니다. 다음과 같은 다른 약초 추출물에도 관심이있을 수 있습니다.수용성 실크 피브로인,,,고품질 식품 등급의 피마자 오일/100% 피마자 오일, 그리고고품질 건조 된 오크라 시드 분말/오크라 시드 추출물 분말.

궁금한 점이 있거나 특정 요구 사항에 대해 논의하고 싶다면 조달 토론을 위해 문의하십시오. 프로젝트에 가장 적합한 솔루션을 찾도록 도와 드리겠습니다.

참조

  • 코드 분할에 대한 공식 문서에 대한 반응 : https://reactjs.org/docs/code-splitting.html
  • 효소 공식 문서 : https://enzymejs.github.io/enzyme/
  • Jest 공식 문서 : https://jestjs.io/
문의 보내기