IT이야기

효소, ReactTestUtils와 react-testing-library의 차이

cyworld 2022. 4. 4. 21:01
반응형

효소, ReactTestUtils와 react-testing-library의 차이

반응 테스트를 위한 효소, ReactTestUtils와 react-testing-library의 차이점은 무엇인가?

ReactTestUtils 설명서에는 다음과 같은 내용이 수록되어 있다.

ReactTestUtils를 사용하면 원하는 테스트 프레임워크에서 React 구성 요소를 쉽게 테스트할 수 있다.

효소 문서에는 다음과 같이 적혀 있다.

효소는 반응을 위한 자바스크립트 테스트 유틸리티로, 반응 성분의 출력을 더 쉽게 주장, 조작 및 트래버스할 수 있다.

반응 테스트 라이브러리 설명서:

리액션 테스트 도서관은 리액션 구성품을 테스트하기 위한 매우 가벼운 솔루션이다.리액션 돔 위에 광 유틸리티 기능을 제공한다.

왜 실제로 모든 해결책이 더 쉽고 다른 해결책으로는 달성할 수 없는 것이 있는가?

ReactTestUtils는 React 구성 요소를 테스트하기 위한 최소값을 제공한다.나는 그것이 큰 어플리케이션에 사용되는 것을 보지 못했다.

효소와 리액션 테스트 도서관은 둘 다 당신이 당신의 어플리케이션을 테스트하는데 필요한 모든 도구를 제공하는 좋은 도서관이다.하지만 그들은 두 가지 다른 철학을 가지고 있다.

효소는 당신이 당신의 성분의 내부 작용에 접근할 수 있게 해준다.상태를 읽고 설정할 수 있으며, 아이들이 시험을 더 빨리 치르게 하기 위해 조롱할 수도 있다.

반면에, 리액션 테스트 도서관은 구현 세부사항에 대한 접근을 제공하지 않는다.구성요소를 렌더링하고 구성요소와 상호작용하는 효용 방법을 제공한다.그 아이디어는 당신이 당신의 어플리케이션과 사용자와 같은 방식으로 의사소통해야 한다는 것이다.따라서 구성요소의 상태를 설정하기보다는 사용자가 해당 상태에 도달하기 위해 수행할 작업을 재생산한다.

내 경험상 효소는 이해하기 쉬우나 장기적으로는 유지하기가 더 어렵다.반응-반응-반응-반응-반응-반응은 당신이 평균적으로 조금 더 복잡한 테스트를 작성하도록 강요하지만, 그것은 당신의 코드에 대한 더 높은 신뢰도로 당신에게 보상을 준다.

효소는 단위/통합 테스트를 위한 것이다.그것의 API는 구현을 테스트하기 위해 고안되었다.DOM이 필요 없는 사용자 지정 렌더러(천박한 렌더링의 경우), 리액션 렌더러와 다르게 동작하며, 동기식 상태 업데이트, 얄팍한 렌더링, 라이프사이클 방법 비활성화 등과 같이 단위 테스트에 중요하지만 기본 렌더러가 가능하거나 간단하지 않은 것들을 허용한다.

react-reason-reason-reason은 블랙박스 통합/e2e 테스트를 위해 설계된다.React 렌더러와 ReactTestUtils를 내부적으로 사용하며, 실제 DOM이 필요한 것은 구성 요소의 출력이 내부 출력이 아니라 테스트에서 주장되기 때문이다.격리된 유닛 테스트를 위한 시설은 제공하지 않지만, 특히 다른 방법으로 스패딩, 조롱 또는 스텁이 필요한 구성 요소를 포함하는 모듈을 조롱함으로써 이 작업을 수행할 수 있다.jest.mock.

react-dom/test-utilsreact-test-render에는 기능성의 하위 집합이 포함되어 있으며, 효소와 react-testing-library가 그 위에 구축되었다.API는 부족하며 완전하게 성장한 테스트를 위해 보일러플레이트 코드나 사용자 정의 유틸리티 기능을 작성해야 한다.리액트는 공식적으로 효소와 리액션 테스트 도서관을 더 나은 대안으로 홍보한다.

반응 테스트 라이브러리는 효소의 대체품이 될 수 있다.그들은 매우 다른 시험 철학을 가지고 있다 - 효소는 렌더링된 구성요소 인스턴스로 구현 세부사항을 시험하는 것을 권장하고 유틸리티를 제공하는 반면, RTL은 실제 DOM 노드에 대해 쿼리하고 주장을 함으로써 '종료 결과'만을 시험하도록 권장한다.

참조URL: https://stackoverflow.com/questions/54152562/difference-between-enzyme-reacttestutils-and-react-testing-library

반응형