Learn Testing에 오신 것을 환영합니다!

이 과정에서는 웹 테스트를 소개하고 탐색해 봅니다.

이 과정에서 학습할 내용은 다음과 같습니다.

  • 테스트 기본사항
  • 자동 및 수동 테스트 비교
  • 테스트 실행 위치 및 방법
  • 권장사항
  • 테스트할 대상, 책임 및 대상 자체를 테스트하기 위한 수단을 테스트하는 방법을 포함하는 테스트 철학

이 과정에는 배울 수 있는 간결하고 실용적인 샘플 코드도 포함되어 있습니다.

이 과정의 범위에는 JavaScript 및 프런트엔드의 문서 모델뿐만 아니라 Node.js와 같은 환경에서 실행되는 백엔드의 라이브러리 테스트가 포함됩니다. 테스트에 대한 배경 지식이 없다고 가정하지만 JavaScript에 대한 기초와 Node.js 또는 이와 유사한 기능에 관한 경험이 필요합니다. 초보 개발자와 숙련된 개발자 모두에게 적합합니다.

대부분의 테스트 프레임워크와 도구는 공통의 언어를 공유하므로 학습 테스트에서는 일반적인 방식으로 테스트합니다. 구체적으로 작성하는 것이 중요한 경우 인기를 얻고 있는 테스트 프레임워크인 Vitest를 사용하고 React 또는 Lit를 사용하여 작성된 웹의 구성요소를 테스트하는 방법을 보여줍니다. 선택에 대한 자세한 내용은 부록을 참조하세요.

이 과정을 처음부터 끝까지 진행할 수 있지만 특정 주제에 대한 참고 자료로 사용할 수도 있습니다. 해당하는 경우 이 과정은 리소스로 연결됩니다.

학습할 내용은 다음과 같습니다.

테스트 시작하기

테스트란

JavaScript로 하는 테스트의 실제 예를 포함하여 테스트를 개략적으로 소개합니다. 여기에는 각 테스트의 규모에 대한 소개도 포함되어 있습니다.

테스트 실행 위치

테스트는 생산성을 높이고 효율적으로 소프트웨어를 작성하는 데 도움이 될 수 있습니다. 또한 명령줄을 사용하여 수동으로 테스트를 실행할 수도 있지만 자동화된 프로세스 또는 빌드 시스템의 일부로 테스트를 실행할 수도 있습니다.

테스트 환경

노드와 같은 런타임 도구는 범용 코드용이며 브라우저용 테스트 코드는 에뮬레이션된 환경에서 실행하거나 브라우저 테스트용으로 설계된 프레임워크를 사용하여 실행할 수 있습니다.

자동 테스트 유형

대부분 규모에 상응하는 테스트 유형의 일반적인 분류에 대해 알아봅니다. 중요한 점은 테스트 유형에는 엄격한 정의가 없으며 필요에 따라 변경된다는 것입니다.

테스트 항목 및 접근 방식

코드베이스에서 엄격한 테스트를 적용할 가장 중요한 부분을 파악하기란 어려운 결정일 수 있습니다. 이 모듈에서는 종단의 수단으로서의 테스트라는 개념과 테스트를 위해 코드를 평가하는 방법을 소개합니다.

구성요소 테스트의 실제 사례

이 실습 모듈에서는 그다지 이상적이지 않은 React 구성요소를 테스트하는 방법을 알아봅니다. 여기서는 fetch()로 만든 네트워크 트래픽을 가로채고 외부 종속 항목을 모의 처리하며 React의 Context를 사용하여 테스트만을 위한 맞춤 코드 비트를 제공하는 세 가지 고유한 예를 통해 Vitest를 사용합니다.

정적 분석

잘 확립된 테스트 접근 방식은 아니지만 TypeScript 및 ESLint와 같은 도구를 사용하면 일종의 자동화된 검사를 제공할 수 있습니다. 이 모듈에서는 이러한 대체 도구를 설명합니다.

어설션 및 기타 프리미티브

거래를 위한 도구

test()assert를 비롯하여 JavaScript로 작성하는 모든 테스트의 중심이 될 대부분의 테스트 라이브러리 또는 프레임워크에 공통된 프리미티브에 관해 알아보세요.

제공 예정

  • 일반적인 테스트 함정 피하기
  • 테스트 더블
  • 라이브러리 및 유틸리티 테스트
  • 테스트 프레임워크 결정

이 섹션의 나머지 부분에는 테스트 프레임워크 및 라이브러리, 사용 방법, 사용할 도구 및 기타 도구를 결정하는 방법에 관한 더 많은 페이지가 포함되어 있습니다.

제공 예정: 문제 기반 테스트

몇 가지 일반적인 웹 테스트 과제에 접근하기 위한 패턴을 학습합니다.

제공 예정: 실제 자동화된 테스트

이 섹션은 직접 확인하고 학습할 수 있는 코드를 포함하여 Next.js로 빌드된 전자상거래 사이트를 테스트하는 방법을 보여주는 실용적인 섹션입니다. 구성요소를 테스트하는 방법, 결제를 비롯한 외부 서비스를 사용하는 방법, 테스트를 위한 방법, 선택적인 로그인 페이지가 있는 사이트를 위한 엔드 투 엔드 테스트를 빌드하는 방법을 알아봅니다.

출시 예정: 테스트 철학

테스트는 엔지니어링 업무가 될 수 있지만, 테스트 대상, 책임 및 권장사항을 아는 것은 개발팀에도 어려운 과제가 될 수 있습니다.

제공 예정: 테스트 가능한 코드 작성

이 과정에서는 있는 그대로 코드를 테스트하는 방법을 안내하지만, 팀은 다양한 패턴을 채택하여 코드를 더 쉽게 테스트할 수 있습니다. 이 섹션에서는 몇 가지 접근 방식을 설명합니다.