Unit Test
- "unit"이란 테스트를 할 수 있는 가장 작은 단위! 유닛테스트는 코드로 "코드" 자체를 테스트 하는 것! 코드의 유닛은 함수! 즉, 함수를 테스트하는 것!
Unit Test란?
- 테스트 할 수 있는 가장 작은 단위를 테스트 하는 코드를 작성해서 테스트 하는 것을 말합니다.
- 파이썬에는 unittest라는 유닛테스트를 가능케 해주는 모듈이 이미 포함 되어 있습니다.
- unittest 외에도 pytest라는 팩케지도 있습니다
- 개인적으로는 pytest를 선호 하지만 장고에서도 기본적으로 unittest 가 사용됨으로 unittest를 사용해서 unit test를 구현하도록 하겠습니다.!
장고에서 Unit Test하기
테스트파일은 "앱" 디렉터리 하단의 tests.py라는 이름으로 만들어 줍니다.
tests.py에는 아래의 2가지가 기본으로 import 되어 있어야 합니다.
• from django.test import TestCase
• from django.test import Client
위의 Client는 postman같은 역할을 함
1) Unit Test용 클래스의 flow:
setUp 실행 -> tearDown실행 -> test로 시작하는 메소드 실행 -> setUp 실행 ~~ 요런식으로!
(1) def setUp
: mock 데이터 생성(row생성)
(2) def tearDown
: mock 데이터 지우기(row삭제)
(3) def test
: 테스트를 위한 커스터마이징 함수는 "test_"로 시작할 것!
2) 테스트 케이스의 분류
- positive case(True)
- negative case(False)
- exception case
3) Q. 소셜로그인은 어떻게 테스트해요? (외부에서 데이터를 받아오는 경우들에 해당함)
from unittest.mock import patch, MagicMock
4) 테스트 파일 실행방법
python manage.py test
python manage.py test 앱이름!
Reference