• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Controller 테스트할 때, Service 에 대한 로직

23.07.16 23:20 작성 조회수 409

0

안녕하세요! 테스트에 대해 의아했던 부분이 많이 풀리는 강의입니다. 정말 감사드려요.

 

강의를 잘 듣고 있다가 궁금한게 생겨서요!

controller

@mockBean
Service service

@test
void postData() {
    // when
    when(service.message()).thenRetrun()
}

간단하게 코드를 적어봣는데요!

service에 대해 MockBean으로 주입만 해줬을 뿐, Service에 대한 로직이 없어서요!

제 생각에는 Service가 return 하는 부분은 이미 서비스 계층에서 테스트가 끝났고 Controller 에 테스트를 해야하는 주점은

1 ) Request 에 오는 데이터들의 검증

뿐이라고 생각하는데 맞나요? Get 같은 경우에도 Service에 오는 건 그냥 빈 배열처리하셨더라구요!

감사합니다!


답변 2

·

답변을 작성해보세요.

0

LetsGoHigh님의 프로필

LetsGoHigh

2023.08.01

안녕하세요.

@MockBean이 붙은 서비스는 테스트 실행 시 단순히 컨트롤러를 스프링컨테이너에 등록하기 위한 작업? 설정?이라고 보면 될까요?

0

안녕하세요, 민경재님! :)

강의 중에 말씀드린 것처럼, 제가 생각하는 Controller의 역할 중 하나는 외부 세계에서 들어오는 값들에 대한 효용성을 보장하는 것이고, ControllerTest는 이를 테스트하기 위한 것이 맞습니다.

다만,

service에 대해 MockBean으로 주입만 해줬을 뿐, Service에 대한 로직이 없어서요!
Get 같은 경우에도 Service에 오는 건 그냥 빈 배열처리하셨더라구요!

라고 표현해 주신 부분이 정확히 어떤 질문을 주신 건지 이해를 잘 못했습니다..ㅎㅎ

실제 강의 중에 제가 사용한 코드를 기준으로 해서 조금 더 상세하게 설명 주시면 추가적으로 답변 드리도록 하겠습니다.

감사합니다. :)

채널톡 아이콘