[Spring] DB 연결 없는 컨트롤러 테스트에서 시작한 스프링 공식 문서 공부
사건의 발단 우테코 레벨1 마지막 미션인 웹 체스 강의에서 테스트 더블을 이용해 DB 연결 없이 DAO 객체를 테스트 하는 걸 배웠다. 웹 체스에 스프링 프레임워크를 적용하고 컨트롤러를 짜는데, 컨트롤러도 DB 연결 없이 테스트 할 수 있지 않을까? 하는 생각이 들었다. 체스방의 정보(id, name)을 담은 테이블을 대신 할 와 를 주입받는 를 만든 것 까진 아주 좋았다. 문제는 컨트롤러를 짜며 생겼다. 당초 계획은 를 주입받은 를 테스트 환경에서만 컨트롤러에 주입하기였다. 하지만 스프링에서는 사용자가 직접 new로 객체를 생성하지 않고 로 등록된 클래스를 스캔해 빈(Bean)으로 생성한다. 그래서 테스트에서만 필요한 객체를 주입 할 수가 없었다. 일단 해결은 했으나… 페어 더즈와 방법을 고민하다 지나가던 제이슨이 도와줘서 문제를 해결할 수 있었다. 먼저 test 폴더 하위에 를 추가로 작성해 프로덕션과 다른 설정이 적용되게 한다. 공식 문서에 따르면, 해당 설정은 이미 존재하…