Vue Project 생성 시 Vitest 설치 방법
npm init vue@latest // Vue3 프로젝트 생성 명령어
- 해당 항목을 Yes 설정 시 자동으로 Vitest 설치 및 기본 환경 구축이 이루어진다.
- vitest.config.js 파일과 기본 test 디렉토리가 생성된 것을 확인할 수 있다.
직접 Vitest 라이브러리 설치
npm install -D vitest
- 해당 방법은 vitest 라이브러리만 설치할 뿐, 기본 환경 구성은 사용자가 직접 생성 및 수정을 진행해야한다.


package.json 파일에서 수정이 가능하며 사용자 임의로 변경이 가능하다.

npm run test:unit
실행 결과
❗ --ui 옵션을 추가하면 테스트 결과를 터미널 뿐만 아니라 웹 브라우저로 확인이 가능하다.
ui 옵션 사용 결과

좌측의 테스트 파일을 클릭하면 테스트 결과, 코드, 콘솔 등을 확인할 수 있다.

Unit Test 작성 방법에는 일반적으로 AAA패턴, GWT패턴이 있다.
먼저 두 패턴이 무엇인지 확인 후 기본 문법을 확인해보자.
AAA 패턴은 각 테스트를 Arrange, Act, Assert 세 단계로 나누어진다.
GWT 패턴은 Given, When, Then 세 단계로 나누어진다.
두 패턴은 매우 큰 유사성을 보여주며 단계별 작업이 거의 동일하다.
import { test, expect } from "vitest";
test('AAA 패턴', () => {
// Arrange / Given 단계
let a = 1
let b = 2
// Act / When 단계
let result = a + b
// Assert / Then 단계
expect(result).toBe(3)
})
두 패턴 모두 테스트 코드의 가독성을 높이고, 테스트의 일관성을 높여준다는 장점이 있다.
예시
describe('describe은 여러 테스트를 그룹화 해서 관리', ()=>{
let i = 0;
// 매 테스트 마다 실행
beforeEach(async () => console.log(`매 테스트 이전 - ${i++}`))
afterEach(async () => console.log(`매 테스트 이후 - ${i++}`))
// 모든 테스트 시작 전 1번, 모든 테스트 완료 후 1번
beforeAll(async () => console.log(`모든 테스트 이전 - ${i++}`))
afterAll(async () => console.log(`모든 테스트 이후 - ${i++}`))
test('테스트 내용 명시', ()=>{
expect('test'.length).toBe(4)
})
})
describe
describe은 테스트의 그룹이라고 생각하면 된다.
동일한 범주 내의 테스트를 그룹화하여, 보다 명확한 구조를 갖추고 확인이 가능하다.
test
실행할 테스트의 이름과 기댓값을 비교하는 함수를 정의한다.
실질적인 테스트 코드 실행이 이루어지는 부분이다.
expect
테스트 대상과 기댓값을 비교하는 부분으로, 테스트의 결과를 반환하는 함수이다.
beforeEach / afterEach
각 test 함수 시작 전과 완료 후마다 실행되는 함수들을 정의한다.
beforeAll / afterAll
모든 test 함수 시작 전과 완료 후 1번씩만 실행되는 함수들을 정의한다.
Vitest가 Jest 기반으로 만들어진 테스트 프레임워크이기 때문에 Jest를 사용했던 사람이라면 빠르게 적응할 수 있을 것으로 보여진다.
현재는 Vitest 기본 설치, 기초 사용 방법만을 설명했으나, 앞으로 Vitest와 같이 사용하기 좋은 라이브러리, 빈도 수가 높은 문법 등과 같은 정보도 게시해봐야 겠다.