1. 디버깅 시간을 절약할 수 있다.
2. 코드를 작성하기 전/작성하는 동안 코드에 대해 생각할 수 있다.
3. 처음부터 효율적인 코드를 작성할 수 있다.
4. 테스트 코드로부터 해당 기능의 상세문서를 얻을 수 있다.
5. 배포를 원활하게 유지하는 데 도움이 된다.
TDD (Test-driven development)
소프트웨어를 구현하는데 있어서 필요한 요구사항을 만족하는 작은 테스트코드를 먼저 작성하고, 이를 통과할 수 있는 코드 작성을 반복하면서 개발하는 방법
예시 - 회원가입 기능 함수
구현하고자하는 앱에 테스트 폴더를 만들고 테스트 케이스를 작성한다.
작성한 파일명에test_
을 붙인다.
user
앱에tests
라는 폴더 생성 후test_user_service.py
에 테스트 코드 작성
작성한 함수명에test_
을 붙인다.
>>> python manage.py test [테스트 코드 위치]
Case : 유저 타입이 존재하지 않을 경우
Case : 유저 타입이 존재하지 않을 경우
UserType.DoesNotExist
발생
Case : 유저 타입이 존재하지 않을 경우
UserType.DoesNotExist
에러 발생 핸들링
VScode에서 디버깅 이용해 테스트할 함수의 쿼리 수를 확인해보자
예시 - 회원가입 함수가 정상 작동하는 지 테스트하는 함수
from django.db import connection from django.test.utils import CaptureQueriesContext
with CaptureQueriesContext(connection) as ctx: user_get_service("manager") queries = connection.queries
디버그 콘솔에서
※ 쿼리 확인 후 줄일 수 있는 쿼리는 줄이자.ctx
검색
해당 함수가 정상 작동하기 위한 쿼리 수로 테스트코드 핸들링
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