[DRF] Issue Report - 테스트코드 Notice matching query does not exist.

Yungsang Hwang·2022년 7월 14일
0

Django-Rest-Framework

목록 보기
11/15
post-thumbnail

Issue Report - 테스트코드 Notice matching query does not exist.


상황

  • 공지사항 내용 수정 test 진행 중 오류 발생😱
  • 지난번과 마찬가지로 POSTMAN에서는 발생하지 않은 오류가 테스트코드에서는 발생했다
# 공지사항 내용 수정 API
    def test_update_notice(self):
        url = reverse("notice")+"1"
        response = self.client.put(
            path = url,
            data = self.notice_data,
            HTTP_AUTHORIZATION = f"Bearer {self.access_token}"
            )
        self.assertEqual(response.status_code, 200)

오류코드

Notice matching query does not exist.

  • Notice라는 모델에서의 오브젝트를 찾을 수 없다는 소리였다..

트러블슈팅

  • 곰곰히 생각해보니 테스트 데이터에는 공지사항 게시글 데이터가 존재하지 않았다 (수정을 하려면 저장된 데이터가 있어야 할터!)
  • 셋업 데이터에 공지사항 데이터를 넣어 시도하면 좋을 것 같아 코드를 추가했다
#setUpTestData

#기존 코드
cls.notice_data = {'title' :'안녕', 'content' :'반갑습니다'}
#추가 코드
cls.notice = NoticeModel.objects.create(**cls.notice_data)
  • 추가로 생성된 셋업데이터의 아이디를 조회할 수 있도록 url에 1번을 넣어 작성했다
  • update_notice를 가져오면 <int:id> 라고 되어 있어 받을 수 없는 상태다
# put test 코드 추가
url = reverse("notice")+"1"
profile
하루종일 몽상가

0개의 댓글