#테스팅

14 편의 글

파이썬 테스트 #7 CI에서 돌리기: 사람이 잊어도 기계는 잊지 않는다
5 분 소요

파이썬 테스트 #7 CI에서 돌리기: 사람이 잊어도 기계는 잊지 않는다

GitHub Actions로 pytest를 자동 실행하는 CI 워크플로를 만듭니다. uv 캐시, 파이썬 버전 매트릭스, 커버리지 PR 코멘트, pre-commit, 느린 테스트 분리까지 정리하며 시리즈를 마무리합니다.

파이썬 테스트 #6 테스트 설계: 좋은 테스트와 커버리지 읽는 법
6 분 소요

파이썬 테스트 #6 테스트 설계: 좋은 테스트와 커버리지 읽는 법

테스트 설계의 기본기인 AAA 패턴과 동작 중심 테스트부터 테스트 더블 용어 정리, 플레이키 테스트 대응, pytest-cov 커버리지 숫자를 올바르게 읽는 법까지 다룹니다.

파이썬 테스트 #5 외부 세계 테스트: 파일, HTTP, DB, 웹 프레임워크
6 분 소요

파이썬 테스트 #5 외부 세계 테스트: 파일, HTTP, DB, 웹 프레임워크

mock으로 다 막은 테스트는 진짜 동작을 보장하지 못합니다. 파일은 tmp_path로 진짜를 쓰고, HTTP는 respx로 경계만 막고, DB는 트랜잭션 롤백으로 되돌리는 외부 세계 테스트 전략을 정리합니다.

파이썬 테스트 #4 mock과 monkeypatch: 통제할 수 없는 것을 통제하기
6 분 소요

파이썬 테스트 #4 mock과 monkeypatch: 통제할 수 없는 것을 통제하기

시간, 랜덤, 외부 API처럼 실행할 때마다 결과가 달라지는 의존성을 monkeypatch와 unittest.mock으로 고정하는 방법을 다룹니다. patch 경로 함정과 과잉 mock의 경계까지 정리합니다.

파이썬 테스트 #3 parametrize와 마커: 케이스를 늘리고 골라 돌리기
5 분 소요

파이썬 테스트 #3 parametrize와 마커: 케이스를 늘리고 골라 돌리기

pytest의 @pytest.mark.parametrize로 입력만 다른 테스트를 케이스 표 하나로 합치고, skip·skipif·xfail과 커스텀 마커, -m·-k 옵션으로 원하는 테스트만 골라 실행하는 방법을 정리합니다.

파이썬 테스트 #2 픽스처: 준비와 정리를 주입받기
6 분 소요

파이썬 테스트 #2 픽스처: 준비와 정리를 주입받기

@pytest.fixture로 테스트의 준비 코드를 주입받는 방법을 다룹니다. yield 티어다운, scope 트레이드오프, conftest.py 공유, tmp_path 같은 내장 픽스처까지 정리합니다.

파이썬 테스트 #1 pytest 시작: assert 하나로 충분한 이유
6 분 소요

파이썬 테스트 #1 pytest 시작: assert 하나로 충분한 이유

pytest를 설치하고 assert 하나로 첫 테스트를 작성하는 방법부터 unittest와의 차이, 실패 출력 읽는 법, 테스트 디스커버리 규칙까지 정리합니다.

테스팅 강좌 #6 Playwright로 E2E와 CI 통합 — 트랙 마무리
12 분 소요

테스팅 강좌 #6 Playwright로 E2E와 CI 통합 — 트랙 마무리

트랙의 마지막입니다. 진짜 브라우저에서 실제 흐름을 검증하는 E2E. Playwright 셋업, locator의 역할, page object 패턴 짧게, GitHub Actions CI 통합, 커버리지 리포트, 그리고 6편의 회수까지 정리합니다.

테스팅 강좌 #5 사용자 이벤트와 폼 테스트 — userEvent의 역할
10 분 소요

테스팅 강좌 #5 사용자 이벤트와 폼 테스트 — userEvent의 역할

입력과 제출을 다룹니다. userEvent와 fireEvent의 차이, type/clear/click/keyboard/upload의 패턴, React Hook Form 위의 폼 테스트, 검증 에러 시나리오, 그리고 한 폼 테스트가 정말로 검증해야 할 것은 무엇인지까지 정리합니다.

테스팅 강좌 #4 비동기와 네트워크 모킹 — MSW로 가로채는 패턴
7 분 소요

테스팅 강좌 #4 비동기와 네트워크 모킹 — MSW로 가로채는 패턴

컴포넌트가 데이터를 fetch 하는 경우입니다. findBy와 waitFor의 역할, 왜 fetch를 직접 모킹하지 않고 MSW로 네트워크 레이어를 가로채는지, handler 작성과 happy path , error path 시나리오, 그리고 흔한 비동기 함정까지 정리합니다.

테스팅 강좌 #3 React Testing Library — 사용자처럼 본다
10 분 소요

테스팅 강좌 #3 React Testing Library — 사용자처럼 본다

RTL의 철학과 첫 컴포넌트 테스트. render와 screen의 역할, getByRole/getByLabelText/getByText 같은 queries의 우선순위, 왜 querySelector를 쓰지 않는가, jest-dom matcher의 도움까지 정리합니다.

테스팅 강좌 #2 Vitest 셋업과 첫 단위 테스트 — describe,it,expect
8 분 소요

테스팅 강좌 #2 Vitest 셋업과 첫 단위 테스트 — describe,it,expect

Vitest를 프로젝트에 붙이고, 가장 단순한 함수에 첫 테스트를 짭니다. Jest와의 차이는 한 단락만으로, 핵심은 describe/it/expect의 의미, watch 모드, vitest.config.ts의 역할, 그리고 첫 실패와 첫 통과 사이의 잔주름까지 정리합니다.