Test Code 4

Vitest에서 모의 타이머(mocking timers)로 시간 출력 테스트하기

JavaScript에서 내장객체를 사용하는 퀴즈를 풀게 되었다. 1초에 한 번씩 날짜를 포함한 시간을 출력하는 문제이다. 제시받은 `setInteval()`메서드를 사용하면 된다. setInterval(callback, delay); // callback : 지정된 시간 간격마다 실행될 콜백 함수 // delay : 콜백 함수가 실행되기 전의 시간 간격을 밀리초 단위로 지정함. const intervalID = setInterval(whatTime, 1000); function whatTime() { const now = new Date(); console.log(now); } setInterval() Window 및 Worker 인터페이스에서 제공되는 `setInterval()`메서드는 각 호출 사이에..

Test Code 2023.08.17

`toBe`,`toEqual`과 `toStrictEqual`의 차이점

banilla JavaScript / pnpm + Vite + Vitest + v8(coverage) 이야기가 길어질 수 있으니 차이점만 궁금한 사람은 🔽 아래로 나는 JavaScript 기초 강의를 들으면서 배운대로 테스트 코드도 같이 짜보며 차근차근 공부하고 있어서 모르는 게 참 많다. 그만큼 나중에 스스로 기억하기 쉽고, 나와 같이 비슷하게 제로베이스로 시작하는 모두에게 도움을 주고자 내가 겪은 문제와 그걸 해결한 방법 그리고 왜 문제가 있었는지를 전부 적어볼 예정이다. Vitest는 Jest와 호환이 매우 잘 되지만, 최대한 Vitest에서 일어나는 error로 생각하고 해결하기 때문에 절차가 다를 수 있으니 참고 바란다. 처음 겪는 error들을 보여주기 때문에 완벽하지 않을 수 있다. 성장 과..

Test Code 2023.08.10

What is Vitest? Vite와 함께 알아보자 + 코드 커버리지 확인

2023.08.05 - [Test Code] - New 새 맥북에서 pnpm + Vite 환경 + Vitest 구축하기 Vitest Blazing Fast Unit Test Framework 엄청나게 빠른 단위 테스트 프레임워크 Vite에 대해 들어본 적이 있다면 Vite에서 빌드된 빠른 단위 테스트 프레임 워크인 Vitest에 대해 들어봤을 것이다. Vitest가 무엇인지, 어떻게 사용하는 건지, 왜 나의 앱을 위한 다음 테스트 프레임워크가 될 수 있는지 알아보자! Vite Vitest로 들어가기 전에, Vite의 출현을 먼저 얘기해보겠다. 브라우저에서 ESM(ES Modules)을 지원하기 전까지, JavaScript 모듈화를 네이티브 레벨에서 진행할 수 없었다. 그래서 소스 모듈을 브라우저에서 실행..

Test Code 2023.08.09

New 맥북에서 pnpm + Vite 환경 + Vitest 구축하기

먼저, 상황 설명 2018 맥북 프로 (intel)에서 2023 맥북 에어(M2)로 기변 하면서 테스트 코드 환경을 그대로 옮겨와야 했다. vite create로 프로젝트 생성하고 vitest 추가하는 것은 이전에 포스팅했던 대로 하면 될 텐데, 기존 프로젝트에 vite + vitest를 얹는 것은 또 새로웠다. 굉장히 수월하게 끝나서 걱정할 필요 없다! 아주 쉽다! 우선 node.js 설치 (npm 자동 설치), pnpm 설치까지는 완료했다는 가정 하에 설명한다. pnpm 설치할 때도 오류가 한 번 있었는데 npm 버전을 node.js에서 자동 설치 된 것보다 업그레이드시켜줘야 함 콘솔 메시지 확인하면서 업그레이드해주면 된다. 굉장히 자세하게 알려줌. 전체 과정 : vite 리포지토리를 로컬 컴퓨터로 ..

Test Code 2023.08.05