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

Queza님의 프로필 이미지
Queza

작성한 질문수

토비의 스프링 부트 - 이해와 원리

테스트 코드를 이용한 테스트

통합 테스트시 각 단위테스트 실행 여부

작성

·

576

0

 안녕하세요.

단위 테스트를 작성하여 확인한 후, 통합 테스트를 진행해보고 있습니다.

궁금한 점은 통합테스트 실행시 단위 테스트들이 실행되지 않는 다는 것인데 별도의 설정이나 콜이 필요한가요?

제가 이해한 바로는 @SpringBootTest 가 붙은 통합테스트 진행시 @Test가 붙은 단위 테스트들을 contextload()에서 자동으로 실행 되는 것으로 알고 있습니다.

현재 SpringBootTest쪽에는 별도의 코드가 있진 않고 빈 contextload()만 존재합니다.

조언 부탁드리겠습니다. 감사합니다.

답변 1

0

토비님의 프로필 이미지
토비
지식공유자

"@SpringBootTest 가 붙은 통합테스트 진행시 @Test가 붙은 단위 테스트들을 contextload()에서 자동으로 실행 되는 것"

아닙니다.

@Test는 "단위테스트"를 가리키는 애노테이션이 아닙니다.

JUnit 테스트는 통합 테스트이건 단위 테스트이건 상관없이 @Test가 붙어 있는 메소드를 모두 테스트 합니다. 그때 테스트 실행 전에 준비되는 작업(스프링 컨텍스트 로딩 등) 등이 있다면 @SpringBootTest등에 의해서 지원될 뿐입니다. 테스트 실행 여부는 전적으로 @Test가 메소드에 붙어있는가에 의해서 결정됩니다.

정확히 어떤 상황인지 코드를 보여주시고 어떻게 실행했을 때 어떤 테스트가 동작을 하고, 어떻게 하면 안 됐는지를 알려주세요.

그리고 클래스 내에 여러 @Test 메소드가 있을 때 특정 메소드 내부를 클릭한 상태에서 테스트를 수행하면 해당 테스트 메소드 1개만 동작할 수 있습니다. 그건 주의하셔야 합니다.

Queza님의 프로필 이미지
Queza
질문자

말씀해주신 부분 참고해서 해결하였습니다.

통합 테스트의 대한 이해를 아예 잘못했네요 :)

답변 감사드립니다.

Queza님의 프로필 이미지
Queza

작성한 질문수

질문하기