https://github.com/sdoram/B8_ChangeART
1.테스트 코드로 users view 확인하기
문제점
users에서 이메일 인증을 포함한 test 코드 작성 필요
시도해 본 것들
class SignupViewTest(APITestCase):
@classmethod
def setUpTestData(cls):
cls.email = {"email": "signup@test.com"}
cls.url = reverse("athnt_code_create_view")
def setUp(self):
self.response = self.client.post(self.url, self.email)
self.verify = Verify.objects.get(email=self.email["email"])
setUp으로 미리 이메일 인증코드 발송절차 실행과 Verify 모델에서 객체 지정
def test_signup(self):
url = reverse("signup_view")
user_data = {
"email": "signup@test.com",
"nickname": "테스트",
"password": "1234",
"verify_code": self.verify.athnt_code,
}
response = self.client.post(url, user_data)
self.assertEqual(response.data["message"], "가입완료!")
setup에서 미리 인증코드를 보내고 그 데이터를 활용해서 인증절차 확인 성공
알게 된 점
test code를 작성할 수 있는지가 내가 그 코드를 제대로 이해했는지 판단할 수 있는 기준이 되는 것 같다.
2.테스트 코드로 articles view 확인하기
문제점
class CommentViewTest(APITestCase):
@classmethod
def setUpTestData(cls):
cls.user = User.objects.create_user("article@test.com", "테스트", "1234")
cls.login_data = {"email": "article@test.com", "password": "1234"}
cls.faker = Faker()
cls.article = Article.objects.create(
title=cls.faker.sentence(), content=cls.faker.text(), user=cls.user
)
cls.article_id = cls.article.get_absolute_url().split("/")[1]
cls.data = {"content": "댓글 작성 테스트"}
cls.put_data = {"content": "댓글 수정 테스트"}
def setUp(self):
self.access_token = self.client.post(
reverse("login_view"), self.login_data
).data["access"]
self.before_comment = self.client.post(
path=reverse("comment_create_view", args=[self.article_id]),
HTTP_AUTHORIZATION=f"Bearer {self.access_token}",
data=self.data,
)
self.comment_id = self.before_comment.data["id"]
def test_post_comment(self):
response = self.client.post(
path=reverse("comment_create_view", args=[self.article_id]),
HTTP_AUTHORIZATION=f"Bearer {self.access_token}",
data=self.data,
)
self.assertEqual(response.data["content"], "댓글 작성 테스트")
def test_put_comment(self):
response = self.client.put(
path=reverse("comment_view", args=[self.comment_id]),
HTTP_AUTHORIZATION=f"Bearer {self.access_token}",
data=self.put_data,
)
self.assertEqual(response.data["content"], "댓글 수정 테스트")
def test_delete_comment(self):
response = self.client.delete(
path=reverse("comment_view", args=[self.comment_id]),
HTTP_AUTHORIZATION=f"Bearer {self.access_token}",
data=self.put_data,
)
self.assertEqual(response.data["message"], "댓글 삭제")
이렇게 내가 담당한 부분은 막히지 않고 잘 작성할 수 있었지만, 내가 담당하지 않고 아직 잘 모르는 코드에 대해서는 잘 작성하지 못했다.
알게 된 점
테스트 코드를 작성하려면 진행과정이 어떻게 이어지는지 알아야 정확한 테스트를 할 수 있다.
'프로젝트 > I들 ChangeArt' 카테고리의 다른 글
머신러닝 팀 프로젝트 - KPT 회고 (0) | 2023.05.29 |
---|---|
머신러닝 프로젝트 - 백엔드 데이터 정렬하기 (0) | 2023.05.27 |
머신러닝 프로젝트 - 프론트 페이지네이션 구현 (0) | 2023.05.25 |