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

rnxogns9711님의 프로필 이미지

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원서비스테스트 질문

해결된 질문

작성

·

72

·

수정됨

0

MemberServiceTest에서

Long saveId = memberService.join(member)의 memberService부분에서 밑줄이 그어지며 Cannot resolve symbol 'memberSerivce' 오류가 납니다.

캐쉬도 지워봤습니다.

 

각각 MemberServiceTest와 MemberService 파일 화면입니다.

1.PNG2.PNG

답변 2

1

안녕하세요. rnxogns9711님, 공식 서포터즈 OMG입니다.

첫번째 @Test 어노테이션 위에 있는 } 닫는 중괄호로 인해 클래스 스코프가 끝난 것으로 인지한것 같습니다.

class A{
}
@Test

이런 상황인 거죠 아래와 같이 클래스 범위 구조를 갖도록 수정해주세요.

class A{
@Test
}

첫번째 @Test 위에 있는 } 닫는 중괄호를 제거하고 확인해보시겠어요?

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

rnxogns9711님의 질문에서 memberService가 인식되지 않는 문제에 관해 몇 가지 유사한 상황을 살펴보았습니다. 이와 관련하여, MemberServiceTestmemberService 객체에 @Autowired 애너테이션을 사용하지 않고 직접 초기화를 시도하거나 누락한 부분이 있는지 확인해 보시길 권장합니다.

해결 방법:

  • 통합 테스트의 경우, Spring 컨테이너에서 MemberService 인스턴스를 주입받기 위해 @Autowired 애너테이션을 활용해야 합니다.
  • 테스트 클래스에 @SpringBootTest 애너테이션을 포함시키셨는지 확인합니다. 이 애너테이션은 Spring Boot 테스트와 관련된 전반적인 설정을 활성화하여, 스프링 컨테이너 내에서 관련 빈들을 테스트 중에 사용할 수 있도록 합니다.
  • 만약 명시적으로 MemberService 객체를 생성해 사용하는 단위 테스트의 경우, MemberRepository의 구현체를 직접 생성하여 MemberService의 생성자를 통해 주입시켜야 합니다. 이는 의존성 주입을 코드 내부에서 수동으로 처리하는 방식입니다.

관련 질문 사례 링크:

  • 회원 가입과 중복 회원 예외를 테스트하면서 발생한 오류에 대한 질문: MemberServiceIntegrationTest 오류에서 유사한 환경 설정 및 오류 메시지를 다루고 있습니다. 이 글에서는 @SpringBootTest@Transactional을 사용한 통합 테스트 환경 설정에 초점을 맞추고 있으며, @AutowiredMemberServiceMemberRepository를 주입받는 방법에 대해 설명하고 있습니다.

이러한 문제는 주로 Spring Framework에서의 의존성 주입 관련 설정이 누락되었거나 잘못 적용된 경우에 발생합니다. 제시된 링크와 해결 방법을 참고하여 MemberServiceTest에서 MemberService 사용 관련 설정을 다시 한번 검토해 주시기 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.