Closed seokjin8678 closed 10 months ago
다음과 같이 IntegrationSpec를 상속받은 테스트는 테스트 컨테이너가 실행되고 테스트가 수행됩니다.
IntegrationSpec
class GalaxyhubApplicationTests : IntegrationSpec({ describe("contextLoads") { } })
하지만 Bean을 사용하기 위해 생성자 주입을 받으면 테스트 컨테이너가 실행되지 않고, 바로 테스트가 실행됩니다..!
class GalaxyhubApplicationTests( private val objectMapper: ObjectMapper ) : IntegrationSpec({ describe("contextLoads") { } })
원인은 Kotest의 생명 주기 때문인 것 같은데, 테스트 컨테이너가 실행되는 시점(인스턴스 생성)보다 스프링 빈을 주입 받기 위해 Application Context가 먼저 실행되어서 그런 것 같습니다..!
Kotest
지금은 문제가 없지만, 추후 통합 테스트를 작성한다면 문제가 발생할 것 같네요!!!
이슈 내용
다음과 같이
IntegrationSpec
를 상속받은 테스트는 테스트 컨테이너가 실행되고 테스트가 수행됩니다.하지만 Bean을 사용하기 위해 생성자 주입을 받으면 테스트 컨테이너가 실행되지 않고, 바로 테스트가 실행됩니다..!
원인은
Kotest
의 생명 주기 때문인 것 같은데, 테스트 컨테이너가 실행되는 시점(인스턴스 생성)보다 스프링 빈을 주입 받기 위해 Application Context가 먼저 실행되어서 그런 것 같습니다..!지금은 문제가 없지만, 추후 통합 테스트를 작성한다면 문제가 발생할 것 같네요!!!