작성
·
193
·
수정됨
0
findItems()에서 "itemA", "itemB"가 남아있다는 오류가 발생합니다. jdbc:h2:tcp://localhost/~/testcase 로 접속해서 select 해 보면 데이타가 없는데, =jdbc:h2:tcp://localhost/~/test 로 접속해서 select하면 "itemA", "itemB" 가 남아있습니다.(삭제하고 다시 실행해도....).
TestDataInit을 실행하는거 같네요??
@Bean
@Profile("local")
public TestDataInit testDataInit(ItemRepository itemRepository) {
return new TestDataInit(itemRepository);
}
링크 :: https://drive.google.com/file/d/1HD2gxtYhL8B5fZ3KazZ148-4x66PPCuo/view?usp=sharing
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다.
질문하신 내용과 관련하여, 스프링 DB 2편 - 데이터 접근 활용 기술 강의에서 유사한 컨텍스트를 다루는 질문과 답변이 있습니다. jfk6725님의 질문에서 언급하신 findItems()
메소드와 관련한 오류, 특히 데이터 롤백과 관련된 문제는 종종 테스트 환경에서 발생하는 일련의 문제들 중 하나입니다. 테스트 후 데이터가 롤백되지 않아 예상치 못한 결과를 보이는 경우, 스프링 테스트 설정이나 H2 데이터베이스의 설정을 확인해볼 필요가 있습니다.
다음은 유사한 문제를 해결하기 위해 참고할 수 있는 질문 & 답변 링크입니다:
save
와 findItems
테스트 중 발생한 오류와 관련하여, Item 클래스의 annotation 변경과 H2 데이터베이스 내 테스트 데이터를 삭제하는 방안으로 문제를 해결하였습니다. 비록 정확히 동일한 문제는 아닐 수 있으나, 데이터 롤백 관련 문제 해결에 도움이 될 수 있습니다.질문 내용을 기반으로 할 때, 데이터베이스 연결(URL을 포함하여)과 각 테스트 케이스 실행 후 데이터 롤백 처리 방식에 관해 확인하실 필요가 있어 보입니다. 스프링 테스트 환경에서 @Transactional
어노테이션을 사용하여 테스트를 감싸는 경우, 테스트가 종료될 때 데이터베이스의 상태를 롤백하여 초기 상태로 복구하는 것이 일반적입니다. 따라서, 테스트 환경 구성과 해당 어노테이션의 적용 여부를 확인해 보시기 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.