[TIL #68] 최종프로젝트 #17 이미지 assertEqual

안떽왕·2023년 6월 30일
0

Today I Learned

목록 보기
70/76

오늘은 테스트 코드를 작성했습니다. 복잡하게 구성되어 있는 모델만큼 테스트코드 작성도 험난했는데 그 중 오늘 있었던 일에 대해 말해보고자 합니다.

현재 제가 맡은 여행루트 게시글에는 이미지를 올리고 게시글 수정에서 이미지를 교체할 수 있게 만들어 놓았습니다. 그래서 오늘 테스트코드를 작성할 때도 이미지를 교체하는 코드를 작성하려 assertEqueal을 이용해 비교했습니다.

게시글에는 등록이 된 이미지가 있고 이를 put요청을 통해 원하는 데이터로 교체해준뒤 변경된 게시글에 있는 이미지와 교체를 시도한 데이터에 있는 이미지를 같은지 비교해 보았습니다.

self.assertEqual(updated_route.image.name), 'update.jpg')

updated_route는 변경된 게시글이 들어있는 변수이고 새로운 이미지의 이름은 update.jpg'입니다.
여기서의 문제점은 이번 프로젝트를 구현하면서 이미지를 저장할 때 자동으로 media와 같은 폴더링이 붙어 image.name을 불러오면 media/2023... 과 같은 폴더 주소까지 나오게 돼 update.jpg라는 이름과는 다른이름으로 분류되어 테스트에 실패하는 것이였습니다.

이를 해결하기 위한 방법으로 이미지를 저장하는 이름을 바꾸는 방법을 생각했지만 이렇게 될 경우 프론트에서 작성한 코드들을 모두 수정해야해 번거로워지고 너무 단순한 방법이라 다른 해결책이 있을거라 생각했습니다.

self.assertEqual(os.path.basename(updated_route.image.name), 'update.jpg')

그렇게 선택하게 된 방법은 바로 가져오는 이름을 달리해 가져오는 방법입니다. os.path.basename() 해당 파일의 이름 중 경로를 없애고 파일의 이름만을 가져오는 함수입니다.

이 방법으로 테스트를 시도해 올바른 결과를 얻을 수 있게 되었습니다.

profile
이제 막 개발 배우는 코린이

0개의 댓글