[Django] testcase 사용하기
개발 서버랑 스테이징 서버간의 DB 상의 차이로 인해 테스트를 어케 해야할까 고민하다가 django 의 testcase를 발견
https://docs.djangoproject.com/en/4.1/topics/testing/overview/
Writing and running tests | Django documentation | Django
Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate
docs.djangoproject.com
요약
- setup 메소드를 통해 테스트용 DB 초기화 및 데이터 Insert -> 기본적으로 테스트만을 위해서 임시로 생성되나 변경 가능
- 테스트 메소드들을 사용해서 테스트 로직 구현
- manage.py 를 통해서 빠른 접근 가능 -> 실제 서버 열 필요 없음
- 여러 app, testcase, method 에 대해서 각각 지정해서 테스트가 가능하다
- 함수 단위 테스트를 하기 좋다
- django.test.client를 통해서 http 요청 또한 모방 가능
사용사례
- 함수 단위 -> api 단위 테스트를 한다고 가정
- 임의로 데이터를 만들어서 데이터 패칭하는 함수를 테스트
- 이후 데이터 생성 대신 test.client 를 사용해서 클라이언트 측 http 요청을 모방해서 API 테스트
-> 이때 API 서버로서 django 를 사용중이라면 header 설정에서 좀 귀찮을 수 있는데 kwargs로 잘 던져주면 된다
-> 헤더 설정에 대한 자세한 부분은 여기 를 참조하자