SCKorea / sc-backend

스타시티즌에 대한 한국어 패치를 배포하고 게임 뉴스를 DeepL 기반으로 번역하여 제공하는 서비스
https://sc.galaxyhub.kr/
1 stars 0 forks source link

fix: Kotest에서 Spring Bean 생성자 주입을 받을 때 테스트 컨테이너가 실행되지 않는 문제를 수정한다. #82

Closed seokjin8678 closed 10 months ago

seokjin8678 commented 10 months ago

이슈 내용

다음과 같이 IntegrationSpec를 상속받은 테스트는 테스트 컨테이너가 실행되고 테스트가 수행됩니다.

class GalaxyhubApplicationTests : IntegrationSpec({
    describe("contextLoads") {

    }
})

하지만 Bean을 사용하기 위해 생성자 주입을 받으면 테스트 컨테이너가 실행되지 않고, 바로 테스트가 실행됩니다..!

class GalaxyhubApplicationTests(
    private val objectMapper: ObjectMapper
) : IntegrationSpec({
    describe("contextLoads") {

    }
})

원인은 Kotest의 생명 주기 때문인 것 같은데, 테스트 컨테이너가 실행되는 시점(인스턴스 생성)보다 스프링 빈을 주입 받기 위해 Application Context가 먼저 실행되어서 그런 것 같습니다..!

지금은 문제가 없지만, 추후 통합 테스트를 작성한다면 문제가 발생할 것 같네요!!!