[drf | token] Build a Backend REST API - 25
인증을 위한 토큰 생성 API🥺
이번 시간은 로그인 이후 토큰 생성을 위한 API를 만들어 볼텐데요.
테스트는 4개 만들어 볼게요.
- test_create_token_for_user
- test_create_token_invailid_credentials(self):
- test_create_token_no_user
- test_create_token_missing_field
setup url
test_user_api.py
파일에 상수를 만들게요.
TOKEN_URL = reverse('user':'token')
HTTP POST요청시 생성할 토큰 URL이에요
test - 1😏
정상적으로 가입했을때 200 OK SIGN이 뜨게 만들게요.
payload 변수를 만들고 헬퍼 펑션을 이용해서 페이로드를 인자로 넣어 테스트디비에 후딱 데이터를 저장합니다.
그리고 클라이언트객테에서 포스트를 날리는데요. 이때 TOKEN_URL, payload를 인자로 넣고 res를 다시 객체변수로 받아요.
마무리로 assertIn
메서드를 통해서 HTTP request이후 response body에 (res.data
)에 token키가 있는지 없는지 확인하겠습니다.
또한 status_code역시 assertEqual를 통해서 200이 떳는지 안떳는지 assertEqual을 통해서 비교합니당~
def test_create_token_for_user(self):
"""Test that a token is created for the user"""
payload = {'email': '[email protected]', 'password': 'testpass'}
create_user(**payload)
res = self.client.post(TOKEN_URL, payload)
self.assertIn('token', res.data)
self.assertEqual(res.status_code, status.HTTP_200_OK)
test 2~4
오류 테스트가 상대적으로 비교하자면 더~중요하겠조?
아래와 같이 다시 작성해요.
def test_create_token_invailid_credentials(self):
"""Test that token is not created if invalid credentials are given"""
create_user(email='[email protected]', password='testpass')
payload = {'email': '[email protected]', 'password': 'wrong'}
res = self.client.post(TOKEN_URL, payload)
self.assertNotIn('token', res.data)
self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST)
def test_create_token_no_user(self):
"""Test that token is not created if user doesn't exist"""
payload = {'email': '[email protected]', 'password': 'testpass'}
res = self.client.post(TOKEN_URL, payload)
self.assertNotIn('token', res.data)
self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST)
def test_create_token_missing_field(self):
"""Test that email and password are required"""
payload = {'email': 'one', 'password': ''}
res = self.client.post(TOKEN_URL, payload)
self.assertNotIn('token', res.data)
self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST)
이외에도 다른 테스트가 생각나거나 필요하다면 추가해서 validation 테스트를 할 수 있어요.
Author And Source
이 문제에 관하여([drf | token] Build a Backend REST API - 25), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hyeseong-dev/drf-token-Build-a-Backend-REST-API-24저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)