본문 바로가기
Spring

Spring Boot 테스트에서 @SpringBootConfiguration 찾을 수 없음

by 난타코다옹 2023. 10. 16.

목차

    오류 메시지: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test java.lang.IllegalStateException

    해결 : Spring Boot는 대부분 자동으로 설정되지만, 테스트 클래스에서 @SpringBootConfiguration 어노테이션을 찾을 수 없을 때 위와 같은 오류가 발생합니다. 이 경우, 테스트 클래스에서 @SpringBootTest 어노테이션을 사용하여 Application 클래스를 지정해주면 됩니다.

    @SpringBootTest(classes = Application.class)
    public class JpaTest {
        // ...
    }

    위 코드에서 Application.class는 Spring Boot 애플리케이션의 메인 클래스를 나타냅니다. 이렇게 하면 테스트 클래스가 올바른 Spring Boot 구성을 찾을 수 있습니다.

    또한, 메인 클래스가 다른 패키지에 있을 경우, 패키지 계층 구조를 따라가지 않고 @SpringBootApplication 어노테이션이 있는 패키지에서만 찾으므로 주의해야 합니다.

    package com.example;
    
    @SpringBootApplication
    public class Application {
        // ...
    }
    package com.example.test;
    
    @SpringBootTest(classes = com.example.Application.class)
    public class JpaTest {
        // ...
    }

    위 코드에서는 Application 클래스가 com.example 패키지에 있으므로, JpaTest 클래스에서는 @SpringBootTest(classes = com.example.Application.class)와 같이 패키지 이름을 포함하여 Application 클래스를 지정해주어야 합니다.

    이와 같이 @SpringBootTest 어노테이션을 사용하여 올바른 Spring Boot 구성을 지정해주면, 테스트 클래스에서 @Autowired 등의 어노테이션을 사용하여 스프링 빈을 주입할 수 있습니다.