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

김민지님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

회원 기능 테스트

Runwith, springboottest어노테이션이 없이 테스트 하면 어떻게 되나요?

22.03.07 15:43 작성

·

1.7K

1

이전에는 그 어노테이션 없이 test를 진행했던것같은데
이번에는 저 어노테이션이 추가가되어있네요
어떤 차이인거죠?
runwith 어노테이션은 junit에 내장된 러너를 사용하는 대신 어노테이션에 정의된 러너 클래스(springrunner.class)를 사용한다는데..
junit에 내장된 러너랑 어노테이션에 정의된 러너클래스랑은 무슨차이인건가요?
 

답변 1

2

OMG님의 프로필 이미지

2022. 03. 08. 00:46

안녕하세요. 김민지님, 공식 서포터즈 OMG입니다.

@SpringBootTest는 스프링 컨테이너를 띄우고 스프링과 관련되어 통합테스트를 진행할 때 사용합니다.

특히 DB와 연동되어 처리 할 경우 사용한다고 보시면 될 것 같습니다.

단위테스트에는 @SpringBootTest가 필요 없습니다.

@RunWith의 경우 Junit4에서 스프링 테스트 시에 필요한 어노테이션이였으나 Junit5에서는 생략이 가능합니다.

아래 잘 정리된 글 참고하시면 많은 도움 되리라 생각합니다.

https://www.whiteship.me/springboot-no-more-runwith/

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@BootstrapWith(SpringBootTestContextBootstrapper.class)
@ExtendWith(SpringExtension.class). <== SpringBootTest어노테이션에 포함되어 있습니다.
public @interface SpringBootTest {



감사합니다.