T.I.L June 12, 2023 (test code)
2023. 6. 12. 22:04ㆍT.I.L (Today_I_Learned)
유저 관련 테스트 코드
from django.urls import reverse
from rest_framework import status
from rest_framework.test import APITestCase
from users.models import User
class SignUpTest(APITestCase):
'''
작성자 :
작성날짜 :
작성내용 : 회원가입시 발생할 수 있는 이슈들에 관한 테스트 코드
업데이트 날짜 :
'''
def test_signup(self):
url = reverse("sign_up")
user_data = {
"email": "user1@google.com",
"username": "user1",
"password": "Test!!11",
"re_password": "Test!!11",
}
response = self.client.post(url, user_data)
self.assertEqual(response.status_code, 201)
def test_signup_wrong_password_validate(self):
url = reverse("sign_up")
user_data = {
"email": "user1@google.com",
"username": "user1",
"password": "test11",
"re_password": "test11",
}
response = self.client.post(url, user_data)
self.assertEqual(response.status_code, 400)
def test_signup_wrong_password_pattern(self):
url = reverse("sign_up")
user_data = {
"email": "user1@google.com",
"username": "user1",
"password": "tttTTT111!!!",
"re_password": "tttTTT111!!!",
}
response = self.client.post(url, user_data)
self.assertEqual(response.status_code, 400)
def test_signup_not_re_password(self):
url = reverse("sign_up")
user_data = {
"email": "user1@google.com",
"username": "user1",
"password": "Test!!11",
}
response = self.client.post(url, user_data)
self.assertEqual(response.status_code, 400)
class LoginTest(APITestCase):
'''
작성자 :
작성날짜 :
작성내용 : 로그인시 발생할 수 있는 이슈들에 관한 테스트 코드
업데이트 날짜 :
'''
def setUp(self):
self.url = reverse('log_in')
self.user_data = User.objects.create_user(email="user1@google.com", username="test", password="Test!!11")
def test_login(self):
user ={
"email": "user1@google.com",
"password":"Test!!11",
}
response = self.client.post(self.url, user, format='json')
self.assertEqual(response.status_code, 200)
def test_login_wrong_password(self):
user ={
"email": "user1@google.com",
"password":"test!!11",
}
response = self.client.post(self.url, user, format='json')
self.assertEqual(response.status_code, 401)
이번 프로젝트에 들어와서 처음으로 테스트 코드를 작성해 보았습니다.
우선 위의 코드는 아직 배우는 단계에서 작성해본 코드라서 좋은 테스트 코드는 아닙니다.
그럼에도 벌써 장점을 느낄 수 있었습니다.
1. 테스트 코드를 작성하는 것 만으로도 코드의 로직을 더 잘 이해하는데 도움이 되었습니다. (리팩토링을 하는 느낌)
2. 에러를 더 잘 파악할 수 있었습니다.
조금 더 테스트 코드를 익힌 다음 자세한 글을 옮기겠습니다.
'T.I.L (Today_I_Learned)' 카테고리의 다른 글
T.I.L June 14, 2023 (DRF 프로젝트에 logging 적용) (0) | 2023.06.14 |
---|---|
T.I.L June 13, 2023 (DB 개발/배포 환경에 따라 자동 설정) (0) | 2023.06.13 |
T.I.L June 7, 2023 (OAuth 2.0) (0) | 2023.06.07 |
T.I.L June 5, 2023 (A7_EcoCanvas - S.A) (0) | 2023.06.05 |
T.I.L May 30, 2023 (프로그래머스 Lv.2 숫자의 표현 - 파이썬) (0) | 2023.05.30 |