8퍼센트 Test case 작성 가이드
두줄요약
Django 테스트 작성 시 네이밍, factory_boy, mock, freezegun 활용 방식을 안내합니다.\n공통 데이터 생성과 시간·signal 처리 시 성능 및 테스트 격리 원칙을 제시합니다.
해결 방법
TestCase클래스명과test_기반의 한글 함수명으로 테스트 의도 표현- fixture 대신
factory_boy사용, 불필요한 signal은mute_signals로 비활성화 - 메서드 대체에
unittest.mock.patch, 시간 고정에freezegun활용
성능/운영 포인트
- 읽기 전용 공통 데이터는
setUpTestData에서 한 번만 생성 - 매 테스트마다 실행되는
setUp의 객체 생성 최소화 - 필요한 객체만 테스트 함수 내부에서 생성하는 방식
주의할 점
- naive datetime을
DateTimeField에 할당 전timezone.make_aware()로 변환 start()로 시작한 mock과 freezer의stop()호출로 다른 테스트 영향 차단- signal 검증 목적이 아닐 때만 factory 생성 과정의 signal 비활성화




