작성
·
1.5K
0
안녕하세요
스프링 강의를 듣고 공부한 내용을 연습삼아서 예제를 만들어보는데요.
service 로직을 테스트하는데 오류가 걸려서 질문을 올립니다.
연습은 김영한 강사님의 스프링 강의를 참고하였습니다.
--문제
DB를 적용하지 않은 MemoryRepository를 주입 후
searchById를 단위 테스트 진행시에는 성공하나, 전체 테스트를 진행하면 오류가 납니다.
* 해당 테스트 부분 코드
* 단위 테스트 시 성공
* 전체 테스트 진행 시 오류
똑같이 객체를 생성해서 저장한 뒤, 해당 Id로 조회를 했으나 결과는 저장된 내용이 없다고 합니다.
저는 위 상황이 repository가 전체 테스트 진행시 리셋이 안됐다고 판단했습니다.
따라서 강의에서 배운대로 @AfterEach를 작성했지만, 여전히 오류에 걸리고 있습니다.
어느 부분을 놓치고 있는지 이유를 알 수 있을까요?
(추가적으로 컨트롤러를 생성해서 실제로 구동할 때에는 문제가 없습니다.)
log를 출력했을 때는 afterEach가 제대로 적용이 안되는 것을 알 수 있었습니다.
디버깅을 진행했을 시에 afterEach가 잘 적용되다가 마지막 테스트만 적용이 안됨
답변 2
감사합니다 그렇게 했을 때 오류는 해결됐습니다.
혹시 위와 같이 결과가 나오는 문제의 이유를 알 수 있을까요?
repository가 clear되고 새로 생성해서 진행한다면 처음 데이터를 저장했을때 1번이 되어야할텐데 그렇지가 않네요ㅠㅠ