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

moxn님의 프로필 이미지

작성한 질문수

Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트

테스트 추가하기: h2를 이용한 repository 테스트

실습 1부 레파지토리 커버리지

작성

·

415

·

수정됨

0

안녕하세요.

강사님은 UserEntitiy 부분이 100%가 나오는데 저는 똑같이 따라해도 UserEntitiy 부분은 테스트 커버리지가 0%로 나옵니다. 제 코드는 practice-part-1의 feat: initialize toy project 버전입니다.

강의만 따라가면 다른 분들도 이렇게 나오시나요? 아니면 제가 뭘 놓친 걸까요?

practice-part-1 브랜치 보아도 제 코드랑 크게 다른 부분은 없는 것 같은데 왜 커버리지가 다른지 궁금합니다..!

답변 1

0

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

모xn님, 테스트 커버리지가 예상과 다르게 나오는 문제는 여러 원인으로 발생할 수 있습니다. UserEntity 부분의 테스트 커버리지가 0%로 나오는 가장 흔한 원인은 해당 클래스에 대한 테스트 코드가 작성되지 않았거나, 제대로 실행되지 않은 경우입니다. 테스트 코드를 작성하셨다면, 다음 사항들을 확인해 보시는 것이 좋습니다:

  1. 테스트 코드 실행 여부: 테스트 코드가 실제로 실행되었는지 확인해보세요. 때때로 IDE의 설정 또는 테스트 코드 자체의 문제로 인해 특정 테스트가 실행되지 않을 수 있습니다.

  2. 테스트 대상 지정: @EntityScan 어노테이션을 사용하여 테스트 대상을 명시적으로 지정하려고 할 때, 해당 클래스가 올바르게 포함되어 있는지 확인하세요. 아래의 예시 코드를 참고하여 설정이 올바른지 검토해보세요.
    ”`java
    import org.springframework.boot.autoconfigure.domain.EntityScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;

@Configuration(proxyBeanMethods = false)
@EnableAutoConfiguration
@EntityScan(basePackageClasses = UserEntity.class)
public class MyApplication {
// …
}
“`
출처: Spring Boot Reference Documentation

  1. IDE 및 빌드 도구 설정 확인: 때로는 IDE 또는 사용하고 있는 빌드 도구(예: Maven, Gradle)의 설정 문제로 인해 정상적으로 테스트가 수행되지 않을 수 있습니다. 테스트 관련 설정이 올바르게 구성되어 있는지 확인해보세요.

  2. 테스트 로직 검토: 테스트 커버리지가 낮다면, 테스트가 해당 클래스의 모든 코드 경로를 충분히 검사하지 않을 가능성이 있습니다. UserEntity 클래스에 대한 테스트 코드를 검토하고, 누락된 부분이 없는지 확인하세요.

이러한 사항들을 확인해도 여전히 문제가 해결되지 않는다면, 더 구체적인 코드 분석이 필요할 수 있습니다. 코드의 구체적인 부분을 담당 강사님께 질문하거나, 코드 리뷰를 요청해보는 것도 좋은 방법입니다.

moxn님의 프로필 이미지

작성한 질문수

질문하기