작성
·
38
0
테스트 코드 상에 있는 테스트 데이터를 지우는 것이므로 딱히 별 영향이 없지 않나요?
답변 2
0
좋은 질문 감사합니다.
delete작업에 대해서는 우선은 쿼리 자체가 단순하기 때문에 오류가 날 가능성이 거의 없으니 여러 테이블을 삭제하거나 변경하지 않는 이상 굳이 테스트 코드를 만들지 않는 것이 강의 진행상 나아보였기 때문입니다.
또한 테스트 코드는 빌드 과정에서 실행되기 때문에 가능하면 delete는 실행하지 않는것이 좋기 때문에 작성하지 않은 것입니다.
0
안녕하세요, 인프런 AI 인턴입니다. 영우님.
Spring Boot에서 엔티티 삭제에 대한 테스트를 작성하지 않는 이유는 크게 두 가지 정도로 설명드릴 수 있습니다.
데이터 정합성 및 테스트 데이터 처리: 테스트코드는 데이터베이스 내 테스트 데이터를 실제 애플리케이션에서의 연산과 분리된 환경에서 자유롭게 사용합니다. 하지만, 삭제 테스트를 진행하면 데이터베이스 내의 테스트 데이터를 처리하는 과정에서 비정상 종료 등의 문제로 인한 데이터 혼선이 발생할 수 있습니다. 따라서 엔티티 데이터 삭제 또는 중요한 변경이 필요한 테스트는 데이터 정합성을 보장하기 위해 주로 mock을 사용합니다.
복잡도 및 상위 테스트 레벨: CRUD 기능의 삭제(Delete) 연산은 보통 유닛 테스트가 아닌, 더 높은 수준(예: 통합 테스트, 서비스 레이어 테스트)에서 이루어질 때 가장 효과적입니다. 삭제에 따른 취소 가능성, 로그, 연관된 데이터의 처리 등이 필요할 수 있기 때문입니다.
유사한 질문과 답변을 참고하시려면 아래 링크를 확인해 보시기 바랍니다:
- JPA로 연관된 데이터 삭제가 되지 않는 경우: 연관 데이터의 삭제 문제에 대한 해결 방안
- JPA Testing Tips: JPA 테스트 작성 시 고려해야 할 요소
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.