//
Search
📑

testBean주입시 override 오류 발생 해결 방안

블로그로 정리해 올린 글입니다
작성자

문제 상황

총대마켓은 상품 url을 통해 og:image를 추출하는 기능을 가지고 있습니다. 이 API를 문서화 하기 위해선 실제 상품 Url이 필요한 문제가 발생했습니다. 실제 Url을 통해 테스트를 구동하게 되면, 상품 Url의 접속 가능 여부에 따라 실패하거나 성공할 수 있기 때문에, 테스트 코드를 관리하는 측면에서 나쁜 영향을 받음을 예상했고 결론적으로 Crawling시 Fake객체를 이용해서 예측된 값을 반환하도록 변경했습니다.
이 때 Fake 객체를 주입해야 하는데, Configuration의 메서드 명이 같을 경우 예외가 발생하기 때문에 이에대한 해결방안을 고민해야 할 필요가 있었습니다

해결 1: 테스트 application.properties에서 Overriding을 하여 해결

이 방법을 사용했을 때, 코드만으로 봤을때 예상하기 어려웠고 해당 방법은 사용하지 않았습니다.

해결 2: Bean 생성 메서드 이름을 다르게 설정 testXXX

이름을 다르게 설정하여 테스트 코드 실행 시 해당 객체를 우선적으로 주입받는 방식으로 해결 했습니다.