Drf로 API 테스트 코드 짜기

Ji_min·2021년 4월 18일
0

계속 postman으로 api테스트를 하다가 이번에 django를 써보면서 django rest framework로 간편하게 api 테스트를 할 수 있다는 것을 알게 되었다.

django이 TestCase처럼 drf에서 제공하는 APITestCase가 있는데, 이 모듈을 상속받아 테스트 코드를 짜보았다.

from django.urls import reverse
from rest_framework.test import APITestCase
from rest_framework.views import status


class SentimentAnalyzeTestCase(APITestCase):
    def setUp(self):
        self.url = reverse('sentiment')

    def test_post_user_data(self):
        data = {
            "words": ["death", "fear", "kill", "pray", "god", "hope", "pretty"]
        }
        response = self.client.post(self.url, data=data, format='json')
        self.assertEqual(response.status_code, status.HTTP_200_OK)

위의 코드는 post 요청을 확인하는 테스트 코드이다.

참고로 url의 reverse는 Flask의 url_for과 동일한 역할을 하는 함수인 것 같다.

# urls.py 
urlpatterns = [
    path('sentiment/', views.SentimentAnalyzeView.as_view(), name='sentiment')
]

이렇게 url 경로가 있을 때, reverse('sentiment') 혹은 reverse(views.SentimentAnalyzeView)로 접근할 수 있다.


참고

https://djangostars.com/blog/rest-apis-django-development/

profile
Curious Libertine

0개의 댓글