Q&A

책을 따라하다가 막히는 부분이 있나요?
질문을 남겨주세요.

p.275 댓글 영역에 대한 테스트코드

3 years, 2 months ago

jae_seok jae_seok

안녕하세요, 교재에 나와 있지 않은 테스트코드를 추가로 작성하여 테스트하는 도중 이해가 가지 않는 결과를 얻게 되어 질문드립니다.

교재에서는 p.274에서 댓글 영역에 대한 id를 지정했지만 따로 테스트코드를 추가하여 테스트는 하지 않아, 따로 테스트코드를 추가했습니다.

아래는 blog/tests.py 에서 test_post_detail() 내에 작성된 코드입니다.


main_area와 post_area까지는 교재에서 나온 코드이고, comment_area가 제가 추가한 코드입니다. 참고로, 교재와는 달리 현재 저의 템플릿에서는 post-area가 article 태그로 묶여 있어 find('article', id='post-area')로 수정한 상태입니다. 마찬가지로 comment-area 또한 section태그로 묶여 있어 위와 같이 작성했습니다.

그런데, 여기서 궁금한 점은 comment_area에서 find('section', id='comment-area')가 아닌 find('div', id='comment-area')라고 바꿔도 테스트코드를 돌렸을 때 정상이라고 나온다는 점입니다. 반면, post_area는 'article'이 아닌 'div'로 변경 시 테스트코드를 돌렸을 때 에러가 발생했다고 나옵니다.

이처럼 comment-area에서만 다른 태그를 find에 전달해도 어떠한 에러도 탐지하지 못하는 이유가 무엇인지 알고싶습니다.


⋇ post_detail.html 파일을 첨부합니다.

http://colorscripter.com/s/JATIBZd


sungyong
sungyong   3 years, 2 months ago

흠 조금 이상한 현상이네요. 혹시 에러메시지를 보여주실 수 있나요?

일단은 assertIn에 인자가 세개가 들어간건 이상해보입니다. 

Updated: Aug. 8, 2021, 10:39 p.m.

jae_seok
jae_seok   3 years, 2 months ago

assertIn에 인자가 3개가 들어간 것이 이상해보인다고 해주셔서 제가 test 코드 자체를 완전히 잘못 작성했다는 것을 깨달았습니다.^^

self.assertIn()은 post_001 포스트의 title 필드 값이 포스트 영역에 있는지 여부를 검사하기 위함인데, 그곳에 comment_area를 넣는 것 자체가 의도에 맞지 않는 코드였네요. 댓글 영역에 댓글이 작성되었는지 검사를 하기 위해서는 post_001과 같이 앞에서 먼저 댓글을 생성해야 했는데 그러한 과정 없이 assertIn에 인자를 단순히 추가하기만 했으니 오류가 발생할 수 밖에 없던 것 같습니다. 그리고 만약 post_001과 같이 comment_001이라는 댓글을 하나 생성했다면 새로 self.assertIn()을 추가했을 때, 인자로 comment_area보다는 comment_area.text가 더 적합할 것으로 보입니다.

답변해주셔서 정말 감사합니다!

Updated: Aug. 9, 2021, 1:37 a.m.

Leave a Comment:
목록보기
Search
  • 자유게시판
  • Q&A