단위 테스트
프로그래머 관점에서 애플리케이션 내부를 테스트하는 것 하위 레벨의 개발 주도한다는 뜻
TDD 작업 순서
- 기능 테스트를 작성 후 사용자 관점의 새로운 기능성을 정의하는 것부터 시작한다.
- 기능 테스트가 실패하고 나면 어떻게 코드를 작성해야 테스트를 통과할지를 생각해보도록 한다.
이 시점에서 하나 또는 그 이상의 단위 테스트를 이용해서 어떻게 코드가 동작해야하는지 정의한다. - 단위 테스트가 실패하고 나면 단위 테스트를 통과할 수 있을 정도의 최소한의 코드만 작성한다.
기능 테스트가 완전해질 때까지 과정 2, 3을 반복해야할 수 도 있다. - 기능 테스트를 재실행해서 통과하는지 또는 동작하는지 확인한다.
이 과정에서 새로운 단위 테스트를 작성해야 할 수도 있다.
Django 단위 테스트
django에서 app을 생성하게 되면 test.py가 생성된걸 볼 수 있다.
빠른 이해를 위해 간단하게 테스트를 만들어서 실행해보자
# test.py
from django.test import TestCase
class ExampleTest(TestCase):
def test_maths(self):
self.assertEqual(1 + 1, 3)
일단 간단하게 위의 로직을 돌려봐야하는데 test를 돌리는 구문은 따로 있다. python manage.py test
로 돌리면 된다.
돌리면 실패할 것 이다. 1+1은 3이 아니고 2이니깐
그럼 assertEqual()에 대해서 궁금할법 하다.
해당 구문은 단위 테스트에서 두 값의 동등성을 확인하는데 사용되는 단위테스트 라이브러리 함수이다.
이 함수는 세개의 매개변수를 입력으로 사용하고 주장 조건에 따라 부울 값을 반환한다. (assertEqual(first_value, second_value, message) 세개의 매개변수는 이렇게 사용가능하다.)
두개의 입력 값이 같으면 assertEqual()은 true를 반환하고 그렇지 않으면 false를 반환한다.
그럼 assertEqual에 들어가는 인자에 대해서 알아볼 수 있다.
- first_value : 함수별 비교에 사용되는 모든 유형의 변수
- second_value : 함수별 비교에 사용되는 모든 유형의 변수
- message : 테스트 케이스가 실패했을 때 표시되는 메시지로 문자열 문장
'Django' 카테고리의 다른 글
PostgreSQL 설정 (0) | 2021.10.25 |
---|---|
django test code 실행시 Error (0) | 2021.10.23 |
django JWT 사용 방법 (0) | 2021.08.09 |
django serializer (serializers.Serializer) (0) | 2021.08.03 |
django drf-yasg API 문서 커스텀하기 (@swagger_auto_schema) (FBV) (0) | 2021.08.03 |