강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

woo93xna님의 프로필 이미지
woo93xna

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

Persistence Layer 테스트 (1)

단위테스트 질문이 있습니다

작성

·

11

0

  • 학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!

  • 먼저 유사한 질문이 있었는지 검색해 보세요.

  • 서로 예의를 지키며 존중하는 문화를 만들어가요.

     

 단위테스트할때 항상 궁금했던 점이

단순한 CRUD도 테스트코드를 구현해주는 게 맞는걸까요?

JPA 기능을 그대로 적는? 느낌이 나서 굳이 필요한 테스트코드인가 하는 생각이 항상 드는데 왜 구현했는지에 대한 시나리오를 @DisplayName 적곤 하지만 뭔가 불필요하다는 생각이 가끔 들기도 하는데 다 적는 게 맞는거겠죠??

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. woo93xna님 질문에 대해 답변드리겠습니다.

단위 테스트를 작성할 때, 특히 CRUD와 같은 기본 기능은 테스트의 필요성에 대해 의문이 들 수 있습니다. 하지만 이러한 테스트는 여러 가지 이유로 유용할 수 있습니다:

  1. 기능 검증: 기본적인 CRUD 기능도 버그가 있을 수 있습니다. 이를 통해 코드가 제대로 작동하는지를 명확하게 검증할 수 있습니다.

  2. 변경에 대한 안전망: JPA나 다른 라이브러리의 버전 업그레이드나, 코드 변경이 발생할 경우, 예상치 못한 변화가 있으므로 기존의 테스트코드를 통해 그 영향을 쉽게 파악할 수 있습니다.

  3. 문서화의 역할: 테스트 코드는 해당 코드가 기대하는 동작을 문서화하는 역할도 합니다. 다른 개발자가 코드를 읽을 때 도움이 될 수 있습니다.

  4. 데이터베이스 변경 시 리스크 감소: 데이터베이스 스키마가 변경될 때, 관련 CRUD 기능이 여전히 올바르게 동작하는지를 확인하는 테스트가 될 수 있습니다.

그렇기 때문에 기본 CRUD 자체를 테스트하기보다, 이런 기능이 어떻게 사용되는지를 포함하여 시나리오를 엮어 테스트하는 것이 더 유익할 수 있습니다. 특히 @DisplayName 을 사용하여 테스트의 목적을 명확하게 나타낸다면, 테스트 코드의 가치는 더욱 높아집니다.

비슷한 주제에 대해 자세한 논의를 원하시면 다음 링크를 참조해 주세요:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

woo93xna님의 프로필 이미지
woo93xna

작성한 질문수

질문하기