DRF - Test 하기

Dongwoo Kim·2022년 9월 6일
0

DRF

목록 보기
2/9

1. Test Code 작성의 필요성

1. 디버깅 시간을 절약할 수 있다.

2. 코드를 작성하기 전/작성하는 동안 코드에 대해 생각할 수 있다.

3. 처음부터 효율적인 코드를 작성할 수 있다.

4. 테스트 코드로부터 해당 기능의 상세문서를 얻을 수 있다.

5. 배포를 원활하게 유지하는 데 도움이 된다.


2. TDD

TDD (Test-driven development)


소프트웨어를 구현하는데 있어서 필요한 요구사항을 만족하는 작은 테스트코드를 먼저 작성하고, 이를 통과할 수 있는 코드 작성을 반복하면서 개발하는 방법


3. DRF에서 Test 하기

예시 - 회원가입 기능 함수

1) Test Code 작성하기

구현하고자하는 앱에 테스트 폴더를 만들고 테스트 케이스를 작성한다.
작성한 파일명에 test_을 붙인다.

user 앱에 tests라는 폴더 생성 후 test_user_service.py에 테스트 코드 작성
작성한 함수명에 test_을 붙인다.

2) Test 명령어

>>> python manage.py test [테스트 코드 위치]

3) Case별 Test Code 작성

Case : 유저 타입이 존재하지 않을 경우

4) Test 후 Error 발생확인

Case : 유저 타입이 존재하지 않을 경우 UserType.DoesNotExist 발생

5) Case별 Error 핸들링

Case : 유저 타입이 존재하지 않을 경우 UserType.DoesNotExist 에러 발생 핸들링

6) Test 통과 확인


4. VScode에서 디버깅 하기

VScode에서 디버깅 이용해 테스트할 함수의 쿼리 수를 확인해보자

예시 - 회원가입 함수가 정상 작동하는 지 테스트하는 함수

1) Import

from django.db import connection
from django.test.utils import CaptureQueriesContext 

2) 코드 수정 & 중단점 찍기

with CaptureQueriesContext(connection) as ctx:
	user_get_service("manager")
queries = connection.queries

3) 디버깅 실행

4) 쿼리 수 확인

디버그 콘솔에서 ctx 검색

※ 쿼리 확인 후 줄일 수 있는 쿼리는 줄이자.

5) 테스트 코드 수정

해당 함수가 정상 작동하기 위한 쿼리 수로 테스트코드 핸들링



참고)

https://en.wikipedia.org/wiki/Test-driven_development
https://www.thinktocode.com/2018/02/05/what-is-tdd/
https://www.educative.io/answers/5-reasons-why-testing-code-is-great

작성 코드 : https://github.com/PreOnBoarding/Bulletin_Board_Service

profile
kimphysicsman

0개의 댓글