django 테스트 케이스와 비슷하다.
api 테스트를 돕는다.
from rest_framework import status
from rest_framework.test import APITestCase
from django.urls import reverse
class LocationTestCase(APITestCase):
def setUp(self):
self.test_url = reverse('location')
def test_status(self):
data = {
'lon': 126.9784039920235,
'lat': 37.566627074987274,
'limit': 1,
'user_id': "asdf"
}
response = self.client.get(self.test_url, data=data)
print(response.status_code)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
APITestCase를 상속받아 테스트를 위한 클래스를 하나 생성한다.
setUp()은 오버라이드한 함수로, 초기 공통 설정을 해줄 수 있다.
reverse()는 urls.py에서 설정한 경로 이름을 넣으면 자동으로 해당 경로를 가져오는 역할을 한다.
아래 test_status()는 사용자가 직접 정의한 함수로 실제 테스트에 사용된다.
나는 데이터를 임의로 만들어 get방식으로 urld을 호출하였고, get방식에서 data는 쿼리 형태로 들어간다.
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
이 부분은 내가 예상한 응답과 실제 응답이 같은지 확인하는 부분이다. 만약 같다면 테스트는 통과이고 틀리면 error라고 나온다.
실행 방법은
python manage.py test
python manage.py test [앱이름]
등등.. 이 존재한다.
테스트 성공!
테스트 실패...
'장고(DJango)' 카테고리의 다른 글
[Django, DRF] 장고 쿼리 필터 (query filter) (0) | 2022.09.12 |
---|---|
[Django] request 매개변수 (0) | 2022.08.30 |
[Django] render 함수 (render function) (0) | 2022.08.14 |
[Django] ORM & migration (0) | 2022.08.14 |
[DRF] serializer (django-restframework 시리얼라이저) (0) | 2022.08.13 |