본문 바로가기
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 등의 어노테이션을 사용하여 스프링 빈을 주입할 수 있습니다.