반응형
스프링 부트 테스트 중에
@Autowired로 의존성을 주입했는데도 불구하고 디버깅을 찍어보면 NULL로 인해 테스트가 정상적으로 실행되지 않는 경우가 있다.
그럴 때엔, 아마도 @SpringBootTest 어노테이션 대신에
@Runwith(SpringRunner.class)를 넣으면 될 것이다. 그 이유는 무엇이냐,,,,
단위테스트는 junit을 이용하게 되는데, Runwith는 junit version 4에 이용되는 방식이고
SpringBootTest는 junit version 5에 이용되는 방식이다.
junit 버전에 따라 어노테이션이나 assertion 이런 부분이 차이가 있다.
지금 build.gradle 에 버전 문제가 있다는 것이다. 따라서 @SpringBootTest를 지원하지 않는 상태인 것
만약 build.gradle에, 이 junit4에 대한 dependencies가 있다면 과감하게 주석처리 해준다.
dependencies {
// testCompile group: 'junit', name: 'junit', version: '4.12'
}
그리고 build.gradle 맨 아래에 이걸 추가해준다.
tasks.named('test') {
useJUnitPlatform()
}
전체 코드는 이러한 식이 될 것이다.
.
.
.
// 여러 코드
dependencies {
// 각자의 dependencies들이 적혀 있겠음.
// 각자의 dependencies들이 적혀 있겠음.
// 각자의 dependencies들이 적혀 있겠음.
}
// 이 부분 추가를 잊지 않는다.
tasks.named('test') {
useJUnitPlatform()
}
이제 다시 @SpringBootTest 어노테이션을 이용하면 문제없이 진행된다.
@Runwith는 쓸 필요 없다.
반응형
'[SpringBoot]' 카테고리의 다른 글
SpringBoot 간단 실습 - 3 Controller, RestClient 활용 (1) | 2022.12.10 |
---|---|
SpringBoot 간단 실습 - 2 단위 테스트 (0) | 2022.12.09 |
SpringBoot 간단 실습 - 1 엔티티 생성 / 서비스 생성 (0) | 2022.12.04 |
SpringBoot 프로젝트 생성하기 (0) | 2022.12.03 |
@RequestMapping을 사용하는 이유 (0) | 2022.12.01 |