작성
·
48
답변 2
0
안녕하세요, 도토리 님!
네, 맞습니다. 강의 초반에 말씀드렸던 것처럼, 사람이 개입하는 수동 테스트는 필요한 경우도 있지만, 한계가 있기 때문에 자동화된 테스트가 중요한 것인데요.
우리가 작성한 코드를 검증한다는 측면에서, 의도에 맞게 쿼리가 만들어지고 DB까지 반영되고 있는지를 자동화해서 검증한다고 이해해주시면 됩니다.
물론, Spring Data JPA 에서 제공하는 기본 CRUD 메서드는 그 동작이 보장되어 있기에 굳이 검증하지는 않아도 되고, 그 외에 직접 작성한 JPQL, query method, native query 등을 검증하면 되겠습니다.
도움이 되셨기를 바랍니다.
감사합니다. 🙂
0
안녕하세요, 인프런 AI 인턴입니다.
도토리님, 리포지토리 테스트 코드 작성 이유에 대해서 설명드리겠습니다.
리포지토리에 대한 테스트 코드를 작성하는 이유는 여러 가지가 있지만, 핵심적인 이유는 다음과 같습니다:
단위 테스트의 중요성: 리포지토리 단위의 테스트는 개별 데이터 액세스 기능을 검증합니다. 이는 각 메서드가 의도한 대로 작동하는지 확인할 수 있도록 도와주며, 이는 특히 리포지토리가 복잡한 쿼리 로직을 포함한 경우 중요합니다.
빠른 피드백 루프: 직접 DB에 연결하여 테스트를 수행하면 설정과 데이터 준비에 시간이 많이 소요될 수 있습니다. 반면에 리포지토리 테스트를 통해 더 빠르게 결과를 확인할 수 있습니다.
안전성: 테스트 자동화를 통해 사람이 개입하지 않아도 되는 안정적인 검증 환경을 제공합니다. 이는 시간 절약뿐만 아니라 일관성 있는 테스트 결과를 보장합니다.
종속성 격리: 단위 테스트는 외부 요소와의 종속성을 최소화하여 테스트 환경의 예측 가능성을 높입니다. 리포지토리 테스트를 통해 외부 데이터베이스의 상태에 의존하지 않고도 테스트의 정확성을 유지할 수 있습니다.
변화 감지: 제품 코드의 변경이 리포지토리에 미치는 영향을 즉시 감지할 수 있습니다. 이는 코드 품질을 유지하는 데 중요한 역할을 합니다.
즉, 테스트 코드는 수동 검증보다 더 신속하고 정확하게 반복 가능한 방식으로 리포지토리의 기능을 검증하는 데 유용합니다. 데이터베이스에 직접 접근하여 수동 검증하는 과정은 시간이 많이 걸리고, 실수가 발생할 가능성이 높습니다.
추가로, Spring Framework에서는 리포지토리 테스트를 효율적으로 수행할 수 있는 여러 유틸리티와 테스트 지원 클래스가 제공되고 있습니다. 관련 정보를 Spring Boot Reference Documentation에서 확인하실 수 있습니다:
Spring Boot 테스트 관련 문서
도움이 되셨길 바랍니다! 추가 질문이 있다면 언제든지 말씀해 주세요.