DRF 테스트를 위한 APIClient
Posted on 2021-08-30 by GKSRUDTN99
Django Rest Framework
DRF
Test Driven Development
API를 테스트하기 위한 Client이다.
import rest_framework.test import APIClient
를 통해 임포트한다.
get()
url과 data(URL parameter)로 GET 요청을 보낸다.
response = self.client.get(
'/api/post/',
{
'post_id': self.post_test.pk
}
)
post()
get()
과 동일하다.
response = self.client.post(
'/api/comment/',
{
'user': self.user_obama.pk,
'post_id': self.post_test.pk,
'content': '블라블라'
}
)
CREATE 요청의 성공 Status Code는 201이다.
put()
url/<int:pk>/
의 url에 요청을 보내야 한다. Django는 끝에 붙는 / 기호에 민감하므로 주의하자.
response = self.client.put(
f'/api/comment/{comment_001.pk}/',
{
'user': self.user_obama.pk,
'post_id': self.post_test.pk,
'content': '다른 블라블라'
}
)
delete()
put()
과 동일하지만, data를 함께 보낼 필요는 없다.
response = self.client.delete(
f'/api/comment/{comment_001.pk}/'
)
Authorization
- client.login()을 통해 로그인 할 수 있다.
- 토큰 방식을 이용하는 경우, 다음 코드를 사용한다.
self.client.credentials(HTTP_AUTHORIZATION='JWT ' + self.user_obama_token)