서버리스에서 유닛 테스트 작성하기
서버리스 환경에서의 단위 테스트
이번 장에서는 서버리스 앱을 위한 단위 테스트 작성 방법을 살펴보겠습니다. 일반적으로 여러분은 비즈니스 로직 일부를 테스트하고 싶을 수 있습니다.
우리가 사용하는 템플릿은 이를 돕기 위한 설정을 포함하고 있습니다. 이 템플릿은 Vitest를 사용합니다.
테스트 작성하기
이전 챕터에서 추가한 사용자 요금 계산 비즈니스 로직을 테스트해 보겠습니다.
packages/core/src/billing/test/index.test.ts
에 새 파일을 만들고 다음 내용을 추가합니다.
import { test, expect } from "vitest";
import { Billing } from "../";
test("최저 요금제", () => {
const storage = 10;
const cost = 4000;
const expectedCost = Billing.compute(storage);
expect(cost).toEqual(expectedCost);
});
test("중간 요금제", () => {
const storage = 100;
const cost = 20000;
const expectedCost = Billing.compute(storage);
expect(cost).toEqual(expectedCost);
});
test("최고 요금제", () => {
const storage = 101;
const cost = 10100;
const expectedCost = Billing.compute(storage);
expect(cost).toEqual(expectedCost);
});
이 코드는 간단합니다. 3개의 테스트를 추가하고 있습니다. 각 테스트는 요금제 구조의 다른 단계를 검증합니다. 사용자가 10개, 100개, 101개의 노트를 저장하려는 경우를 테스트하고, 계산된 비용이 예상 비용과 일치하는지 확인합니다.
테스트 실행하기
이제 테스트를 실행해 보겠습니다.
packages/core/
디렉토리에서 다음 명령어를 실행하세요.
$ npm test
다음과 같은 결과가 출력됩니다.
✓ src/billing/test/index.test.ts (3)
✓ Lowest tier
✓ Middle tier
✓ Highest tier
Test Files 1 passed (1)
Tests 3 passed (3)
내부적으로 이 명령어는 sst shell vitest
를 실행합니다. sst shell
CLI는 연결된 리소스를 모두 연결합니다. 이를 통해 테스트가 애플리케이션 코드와 동일한 접근 권한을 가지도록 보장합니다.
이제 단위 테스트 설정이 완료되었습니다. 이 테스트는 간단하지만, 앞으로 더 많은 테스트를 추가하는 방법에 대한 아이디어를 제공할 것입니다.
변경 사항 커밋하기
변경 사항을 커밋하고 GitHub에 푸시해 보겠습니다.
$ git add .
$ git commit -m "유닛 테스트 추가"
$ git push
이제 프론트엔드로 넘어갈 준비가 거의 다 되었습니다. 하지만 그 전에, React 앱이 백엔드에 연결할 수 있도록 백엔드 설정을 확인해야 합니다.
For help and discussion
Comments on this chapter