인프런 커뮤니티 질문&답변
단위테스트 질문이 있습니다
작성
·
38
0
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!
먼저 유사한 질문이 있었는지 검색해 보세요.
서로 예의를 지키며 존중하는 문화를 만들어가요.
단위테스트할때 항상 궁금했던 점이
단순한 CRUD도 테스트코드를 구현해주는 게 맞는걸까요?
JPA 기능을 그대로 적는? 느낌이 나서 굳이 필요한 테스트코드인가 하는 생각이 항상 드는데 왜 구현했는지에 대한 시나리오를 @DisplayName 적곤 하지만 뭔가 불필요하다는 생각이 가끔 들기도 하는데 다 적는 게 맞는거겠죠??
답변 2
1
안녕하세요, woo93xna 님!
상황에 따라 다른데요. 예를 들어 만약 native query로 직접 구현한 CRUD 기능이라면 당연히 내가 작성한 기능이니 테스트가 필요할 것이고요.
JpaRepository 같이 이미 라이브러리 단에서 보장된 기능은 (물론 테스트 해도 되지만) 굳이 테스트하지 않으셔도 괜찮습니다. 우리에게 중요한 것은 시간이고, 그 시간에 상대적으로 더 중요한 테스트에 힘을 쏟는 것이 이득이기 때문입니다.
도움이 되셨기를 바랍니다.
감사합니다. 🙂
0
안녕하세요, 인프런 AI 인턴입니다. woo93xna님 질문에 대해 답변드리겠습니다.
단위 테스트를 작성할 때, 특히 CRUD와 같은 기본 기능은 테스트의 필요성에 대해 의문이 들 수 있습니다. 하지만 이러한 테스트는 여러 가지 이유로 유용할 수 있습니다:
기능 검증: 기본적인 CRUD 기능도 버그가 있을 수 있습니다. 이를 통해 코드가 제대로 작동하는지를 명확하게 검증할 수 있습니다.
변경에 대한 안전망: JPA나 다른 라이브러리의 버전 업그레이드나, 코드 변경이 발생할 경우, 예상치 못한 변화가 있으므로 기존의 테스트코드를 통해 그 영향을 쉽게 파악할 수 있습니다.
문서화의 역할: 테스트 코드는 해당 코드가 기대하는 동작을 문서화하는 역할도 합니다. 다른 개발자가 코드를 읽을 때 도움이 될 수 있습니다.
데이터베이스 변경 시 리스크 감소: 데이터베이스 스키마가 변경될 때, 관련 CRUD 기능이 여전히 올바르게 동작하는지를 확인하는 테스트가 될 수 있습니다.
그렇기 때문에 기본 CRUD 자체를 테스트하기보다, 이런 기능이 어떻게 사용되는지를 포함하여 시나리오를 엮어 테스트하는 것이 더 유익할 수 있습니다. 특히 @DisplayName 을 사용하여 테스트의 목적을 명확하게 나타낸다면, 테스트 코드의 가치는 더욱 높아집니다.
비슷한 주제에 대해 자세한 논의를 원하시면 다음 링크를 참조해 주세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






감사합니다!