LWC 컴포넌트-컴포넌트 클래스 메소드를 분리하여 테스트하는 방법은 무엇입니까?
확장 된 클래스 LightningElement
(예 : LWC 구성 요소)에서 메서드 를 격리 하여 테스트 할 수 있습니까?
즉, 단순히 사용하여 구성 요소 클래스 new MyComponent()
의 인스턴스를 만든 다음 인스턴스 메서드를 테스트하는 것이 더 시간 효율적이라고 생각합니다 . 즉, DOM 수준 테스트가 아닌 표준 일반 JavaScript 단위 테스트입니다.
DOM 수준 테스트에서 값을 볼 수 없다는 것이 아니라 LWC 구성 요소의 많은 논리가 DOM과 관련이 없으며 DOM을 통해 테스트하는 것이 번거 롭습니다.
구성 요소로 가져온 클래스에 비 DOM 논리를 넣는 것이 문제입니까?
감사.
답변
게시물 끝에 언급했듯이 가장 좋은 방법은 해당 논리를 별도의 파일로 가져 와서 단위 테스트로 직접 가져 오는 것입니다.
lwc-recpies 프로젝트 에서 좋은 예는 자체 테스트 (관련된 구성 요소 없음)가 있고 사용 을 위해 miscSharedJavascript 구성 요소 로 가져 오는 mortgage.js 라이브러리입니다 . miscSharedJavascript 테스트는 원하는 경우 모기지 콜을 모기지하도록 선택할 수 있습니다.
또한 위의 예에서 구성 요소에서 가져온 논리는 별도의 폴더에있을 필요가 없으며 구성 요소 번들의 로컬 Javascript 파일 일 수 있습니다.
특히 무거운 하나의 LWC에서 비 DOM 로직을 helper.js
컴포넌트 번들 의 별도 파일 로 가져 왔고 Jest로 직접 테스트했습니다.
이 StackExchange 답변 은 파일을 넣은 위치와 기본 구성 요소 클래스로 접는 방법을 설명합니다.