인프런 커뮤니티 질문&답변
Runwith, springboottest어노테이션이 없이 테스트 하면 어떻게 되나요?
작성
·
1.9K
1
이전에는 그 어노테이션 없이 test를 진행했던것같은데
이번에는 저 어노테이션이 추가가되어있네요
어떤 차이인거죠?
runwith 어노테이션은 junit에 내장된 러너를 사용하는 대신 어노테이션에 정의된 러너 클래스(springrunner.class)를 사용한다는데..
junit에 내장된 러너랑 어노테이션에 정의된 러너클래스랑은 무슨차이인건가요?
답변 1
2
안녕하세요. 김민지님, 공식 서포터즈 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 {
감사합니다.





