티스토리 뷰

빠르게 알아보자. 포스팅은 gradle 기준으로 설명한다.

 

build.gradle에 아래 설정을 추가해준다.

 

test {
    useJUnitPlatform()
}

 

spring starter test 에서 기존 junit을 제외해준다. dependencies에서 아래처럼 설정해준다.

 

testImplementation('org.springframework.boot:spring-boot-starter-test') { 
    exclude module: 'junit'                                              
}                                                                        

 

이제 junit5 의존성을 추가해줄차례다.

 

testImplementation('org.junit.jupiter:junit-jupiter-api')
testRuntimeOnly('org.junit.jupiter:junit-jupiter-engine')

 

위 의존성까지 추가해주면 테스트작성시 junit5를 이용해서 작성할 수 있다.

'Java > spring' 카테고리의 다른 글

상속관계에서 Spring Transactional 애노테이션 동작  (0) 2020.07.29
spring bean lite mode  (0) 2019.08.03
spring boot 2에서 junit 5 사용하기  (6) 2019.05.16
RestTemplate connection pool 설정하기  (7) 2019.05.15
Netflix Hystrix  (4) 2018.12.23
Spring Cloud Config 2  (0) 2018.12.08
댓글
  • 프로필사진 Wonit 잘 정리된 글 잘 보았습니다!

    글을 읽다 궁금해진게 있는데, 혹시 왜 testImplementation에서 exclude 모듈 junit을 하시는건가요??
    2020.08.01 11:40 신고
  • 프로필사진 LichKing 아마 이 포스팅을 쓰는 시점에서 spring-boot-starter-test 모듈이 포함하고있는 junit 이 4 였을겁니다. junit 5 를 쓰는게 목적이니 spring test 에 포함된 junit 4 를 제외하고, 5 만 임포트하는거죠.

    참고로 spring boot 2.2.0 부터는 기본 의존이 junit 5 이므로 굳이 신경쓸필요 없습니다.
    2020.08.01 16:22 신고
  • 프로필사진 Wonit 항상 저 exclude룰 제외하면서 왜 하는지 이유를 몰랐는데 이제 확실히 알겠네요!
    좋은 글에 좋은 답변 잘 받았습니다 !
    2020.08.01 18:24 신고
  • 프로필사진 루시 저도 Gradle 빌드에 대해 낯설어서
    검색 중에 알게 되었는데,
    특정 부분의 모듈 의존성을 제외하는 방법은 이걸 참고하시면 좋을 것 같네요.
    이런 구분을 이해하고 나면 위에서 설명한 제외(exclude)방법을 활용할 수 있으실 겁니다.

    https://github.com/ihoneymon/spring-boot2-junit5-spock#junit4-제외
    2020.11.12 17:28
  • 프로필사진 루시 이 포스팅을 쓰셨던 시기(부트 2.2.0 이전 버전)에 JUnit5를 사용하셨을 때 테스트 작성에 대해 질문 좀 드립니다!

    가령 부트 2.0.9 버전(spring-core 5.0.9)에서 JUnit5를 사용해 테스트 케이스를 작성할 때
    -> @SpringBootTest 외에도 `@ExtendWith(SpringExtension.class)` 라는 애노테이션을 추가로 넣어줘야 했나요?

    @ExtendWith(SpringExtension.class) -> 이 애노테이션이 필요했나요? 마치 JUnit4의 @RunWith(SpringRunner.class)처럼...
    @SpringBootTest
    2020.11.12 15:25
  • 프로필사진 루시 확인해보니 맞네요.

    스프링 부트 "2.2.0 이하 버전 대"
    + JUnit5 로 테스트 케이스 작성 시,
    @Autowired 로 인젝션 받는 빈들이 NullPointException 발생하는 문제 일어남

    다음과 같이@ExtendWith(SpringExtension.class) 하나 더 추가해주니 잘 주입됨
    (※ JUnit5가 기본 의존성인 스프링 부트 2.2.0 이상 버전에서는 생략가능한 애노테이션)


    테스트 환경 : 부트 2.0.9.RELEASE (spring-core 5.0.9)

    @ExtendWith(SpringExtension.class) //부트 2.2.0+ 에서는 필요 X, 이하 버전대에서는 명시
    @SpringBootTest
    @Transactional
    class MemberRepositoryTest {
    ...
    @Autowired
    MemberRepository memberRepository;
    @Autowired
    EntityManager em;
    ...
    }
    2020.11.12 16:45
댓글쓰기 폼