테스트에서 주입과 생성
198
投稿した質問数 96
안녕하세요 좋은 강의 잘 듣고 있습니다.
사소한 질문이지만요..!
<테스트 추가하기:mockmvc 를 이용한 controlelr 테스트 강의>
의 13:00 에서요
ObjectMapper 를 @Autowired 로 주입받아서 쓰지 않고 생성하셔서 쓰는 이유가 있을까요?
각각은 어떻게 다르고 장단이 있나요.
미리 감사합니다.
回答 1
0
안녕하세요, 인프런 AI 인턴입니다. highjune님.
ObjectMapper를 주입받아서 사용하는 것과 직접 생성하여 사용하는 것의 차이에 대해 궁금해 하시는군요. 해당 질문에 대한 유사한 답변과 관련 정보를 아래에 공유해 드리겠습니다.
유사한 질문 참고
다음 두 개의 질문과 답변이 비슷한 맥락에서 도움이 될 수 있을 것입니다:
1. 실무에서 테스트 프레임워크 사용
2. 스프링에서 서비스 레이어(Application Layer) 테스트에 대한 질문입니다.
요약된 설명
주입받아 사용하는 경우 (
@Autowired):- 장점: 객체의 생명주기를 스프링 컨테이너가 관리하며, 설정 파일에 따라 ObjectMapper의 다양한 설정을 통합하여 일관되게 관리할 수 있습니다.
- 단점: 스프링 컨테이너에 의존하게 되므로 테스트의 유연성이 줄어들 수 있습니다.
- 장점: 객체의 생명주기를 스프링 컨테이너가 관리하며, 설정 파일에 따라 ObjectMapper의 다양한 설정을 통합하여 일관되게 관리할 수 있습니다.
직접 생성하여 사용하는 경우 (
new ObjectMapper()):- 장점: 독립적인 ObjectMapper 인스턴스를 만들 수 있어 테스트의 독립성을 유지할 수 있습니다. 간단한 테스트에서는 설정이 필요 없는 경우가 많아 간편하게 사용할 수 있습니다.
- 단점: 객체를 직접 생성하며 관리해야 하고, 특정한 공통 설정이 필요한 경우 중복 코드가 발생할 수 있습니다.
- 장점: 독립적인 ObjectMapper 인스턴스를 만들 수 있어 테스트의 독립성을 유지할 수 있습니다. 간단한 테스트에서는 설정이 필요 없는 경우가 많아 간편하게 사용할 수 있습니다.
풍부한 설명 추가
ObjectMapper를 직접 생성해서 사용하는 경우와 스프링의 주입을 받아 사용하는 경우는 모두 장단점이 있고, 상황에 맞게 선택하는 것이 중요합니다. 강의에서 ObjectMapper를 직접 생성하여 사용하는 이유는 테스트가 더욱 독립적이고 간단하게 관리될 수 있도록 하기 위함입니다. 이는 특히 간단한 단위 테스트에서 유용할 수 있습니다. 반대로, 여러 테스트에서 일관된 설정이 필요하다면 주입받아서 사용하는 것이 더 좋을 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
UserService, CertificationService 책임 분리 기준 질문
0
26
1
service.port 패키지로 이동한 UserRepository가 infrastructure에 있는 UserEntity에 의존
0
58
1
Service 소형 테스트 질문
0
82
1
조회 시 엔티티를 조회하는 것이 아닌QueryDSL을 많이 사용 시 Dto는 어떻게 하나요?
0
116
1
controller 의 port 패키지의 service 인터페이스 사용
0
72
1
빌드 문제
0
92
1
빌드 안 되시는 분들 참고
0
102
1
update에서 Repository.save
0
105
1
최종 완성된 코드를 받아 볼 수 있을까요?
0
156
1
의존성 역전으로 해결한 외부의존성?
0
162
1
좋은 설계
0
180
1
Controller에 테스트
0
138
1
JPA가 아닌 Mapper 아키텍처 기반 테스트 코드 작성
0
242
0
영속성 객체 구분으로 인한 JPA와 Querydsl의 Projection 사용
0
224
1
인프라계층 구현체와 테스트 구현체에 대한 질문
0
222
1
실습 코드 커밋
0
372
1
UserEntity 메서드
0
293
2
CertificationServiceTest에서 MailSender 인터페이스가 아닌 FakeMailSender를 이용하는 것
0
217
1
레이어드 아키텍처 개발에 대하여
0
231
1
BDDMockito의 when을 사용한 코드가 given 절에 있는 이유가 궁금합니다.
0
223
1
프로젝트 코드는 제공해주시지 않는건가요?
0
382
2
개선된 아키텍처의 구조
0
277
1
서비스 레이어의 단위 테스트 범위 고민
0
188
1
도메인 객체 / entity 객체 / requset, response 객체 간 mapping 시 mapper 사용
1
343
1

