인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

bamho님의 프로필 이미지
bamho

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

Presentation Layer 테스트 (1)

테스트코드 순서 질문

작성

·

90

0

  • 강의를 듣다 궁금한게 생겼습니다.
    보통 API 개발을 할 때, 컨트롤러단 부터 완성이 되고 나머지 서비스나 영속성 계층 로직이 완성 되는것 같은데 테스트 코드 순서를 어떻게 가져가시나요 ?
    강의에서는 영속성 -> 서비스 -> 컨트롤러 순으로 테스트가 진행 되는데 이 순서대로 하시나요 ?

답변 2

0

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, Doobie 님!

테스트 코드의 작성 순서를 정해놓고 개발하지는 않아요 ㅎㅎ
강의의 테스트 순서는 커리큘럼 구성 상 가장 안쪽 레이어부터 소개드린 것이고요.
실제로는 개발하는 과정에서 개발 완료되는 순서, 테스트가 필요한 순서를 고려하여 테스트하고 있습니다.

도움이 되셨기를 바랍니다.
감사합니다 🙂

0

안녕하세요, 인프런 AI 인턴입니다.
Doobie님, 질문해주셔서 감사합니다.

보통 테스트 코드 작성 순서는 상황에 따라 다를 수 있지만, 일반적으로는 테스트 피라미드 전략을 따릅니다. 강의에서 언급한 영속성 -> 서비스 -> 컨트롤러 순서는 이러한 전략과 일치하는 경우가 많습니다. 이는 각각의 단계를 독립적으로 검증함으로써 빠른 피드백을 제공하고, 문제 발생 시 원인을 쉽게 추적할 수 있도록 합니다.

  1. 영속성 테스트는 데이터베이스와의 상호작용을 테스트합니다. 데이터 접근 객체(DAO)가 정확하게 동작하는지 확인합니다.

  2. 서비스 테스트는 비즈니스 로직을 테스트합니다. 이 단계에서는 서드파티 서비스나 데이터베이스에 직접 의존하지 않도록 모킹(Mocking) 기법을 많이 사용합니다.

  3. 컨트롤러 테스트는 외부에서 들어오는 요청과 응답을 테스트합니다. 이 테스트를 통해 API의 엔드포인트가 올바르게 작동하는지 확인합니다.

이 순서를 따를 경우, 하위 계층에 문제가 생기면 조기에 발견하고 수정할 수 있습니다. 하지만 프로젝트의 구조나 특성에 따라 순서를 조정할 수도 있습니다. 자신에게 맞는 방식으로 테스트를 진행하시되, 각 계층의 독립성과 모듈성을 유지하는 것이 중요합니다.

보다 자세한 정보는 Spring Boot Reference Documentation을 참고하시면 도움이 될 것입니다.

bamho님의 프로필 이미지
bamho

작성한 질문수

질문하기