ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • APITestCase와 APIClient를 활용한 Django Rest Framework 단위 테스트 코드 작성
    Back-end/Django 2022. 2. 5. 23:44

    사이드 프로젝트의 단위 테스트를 작성하며 알게된 내용을 정리하였다.

     

    #️⃣ APIClient를 사용해 Request 생성 시 header 추가하기

    response = self.client.post(
                path=url,
                HTTP_{Header 이름}={값})

    위와 같이 인자로 맨 앞에 HTTP_  붙여 전달해주면 된다. 

    참고) Stack Overflow - API Client Custom Header

     

    #️⃣ reverse() 사용 시 url path 변수 값 설정하기

    # 아래 2개는 동일한 표현임
    url = "/account/<int:pk>/userInfo"
    
    url = reverse(viewname="{django app 이름}:{urlpatterns 등록 시 설정한 name}", args=[self.user_id])

    위와 같이 reverse()의 args 인자로 path 변수 값을 설정할 수 있다.

    이때 args에는 여러 값을 전달할 수 있도록 iterable 해야 하므로, []로 감싸 list 타입으로 전달해야 한다.

    참고) Stack Overflow - must be an iterable, not int

     

    #️⃣ APIClient에 Token Authentication 설정하기

    self.client.credentials(HTTP_AUTHORIZATION="Bearer " + self.access_token)

    APITestCase를 상속한 클래스 내부의 메서드에서 self.client는 APIClient 객체이다.

    위와 같이 credentials() 메서드를 사용해 Bearer Token을 설정하여 토큰 인증을 할 수 있다. 

     

    'Back-end > Django' 카테고리의 다른 글

    Testing in Django REST Framework  (0) 2022.01.29

    댓글

Designed by Tistory.