브라우저 모드를 사용하는 이유
동기
Vitest 브라우저 모드 기능은 테스트 워크플로우를 개선하고 보다 정확하고 신뢰할 수 있는 테스트 결과를 얻는 데 도움이 되도록 개발되었습니다. 이 실험적인 테스트 API 추가 기능을 통해 개발자는 실제 브라우저 환경에서 테스트를 실행할 수 있게 되었습니다. 본 섹션에서는 이 기능의 동기와 테스트에 대한 이점을 살펴보겠습니다.
다양한 테스트 방법
JavaScript 코드를 테스트하는 방법에는 여러 가지가 있습니다. 일부 테스트 프레임워크는 Node.js에서 브라우저 환경을 시뮬레이션하는 반면, 다른 프레임워크는 실제 브라우저에서 테스트를 실행합니다. 이 맥락에서 jsdom은 Jest 또는 Vitest와 같은 테스트 러너와 함께 사용되어 브라우저 환경을 시뮬레이션하는 명세 구현의 예시이며, WebdriverIO 또는 Cypress와 같은 다른 테스트 도구는 개발자가 실제 브라우저에서 애플리케이션을 테스트할 수 있도록 하거나 Playwright는 브라우저 엔진을 제공합니다.
시뮬레이션 환경의 주의점
jsdom 또는 happy-dom과 같은 시뮬레이션된 환경에서 JavaScript 프로그램을 테스트하는 것은 테스트 설정을 단순화하고 사용하기 쉬운 API를 제공하여 많은 프로젝트에 적합하게 만들며, 테스트 결과에 대한 신뢰도를 높였습니다. 그러나 이러한 도구는 실제 브라우저가 아닌 브라우저 환경만 시뮬레이션하므로 시뮬레이션된 환경과 실제 환경 간에 일부 불일치가 발생할 수 있다는 점을 염두에 두는 것이 중요합니다. 따라서 테스트 결과에서 거짓 양성(false positive) 또는 거짓 음성(false negative)이 발생할 수 있습니다.
테스트에서 최고 수준의 신뢰도를 얻으려면 실제 브라우저 환경에서 테스트하는 것이 중요합니다. 이것이 Vitest에서 브라우저 모드 기능을 개발한 이유이며, 개발자가 브라우저에서 직접 테스트를 실행하고 보다 정확하고 신뢰할 수 있는 테스트 결과를 얻을 수 있도록 합니다. 브라우저 레벨 테스트를 통해 개발자는 실제 시나리오에서 애플리케이션이 의도한 대로 작동할 것이라고 더 확신할 수 있습니다.
단점
Vitest 브라우저를 사용할 때 다음 단점을 고려하는 것이 중요합니다.
초기 개발 단계
Vitest의 브라우저 모드 기능은 아직 초기 개발 단계에 있습니다. 따라서 아직 완전히 최적화되지 않았을 수 있으며 아직 해결되지 않은 일부 버그나 문제가 있을 수 있습니다. 사용자는 WebdriverIO, Cypress 또는 Playwright와 같은 별도의 브라우저 측 테스트 러너로 Vitest 브라우저 경험을 보완하는 것이 좋습니다.
더 긴 초기화 시간
Vitest 브라우저는 초기화 프로세스 중에 프로바이더와 브라우저를 실행해야 하므로 시간이 다소 걸릴 수 있습니다. 이로 인해 다른 테스트 패턴에 비해 초기화 시간이 더 길어질 수 있습니다.