강의

멘토링

커뮤니티

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

이지훈님의 프로필 이미지
이지훈

작성한 질문수

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

회원 기능 테스트

@Runwith 질문입니다.

작성

·

602

0

junit5에서는@Runwith(SpringRunner.class)가 @SpringBootTest에 포함되있어서 안적어도 된다고 하는데
실제로 해보면 Run할수있는 아이콘조차 안뜹니다.

썻다가 지우면 아이콘 생기는데 돌리면 join메서드 호출시 NPE 발생합니다..

@Runwith(SpringRunner.class)있으면 정상동작합니다.

이전 스프링 입문,기본편에서도 테스트케이스 작성시 @Runwith(SpringRunner.class) 사용안한걸로 기억하는데

왜 여기 테스트 케이스에서는 @Runwith(SpringRunner.class)가 없으면 정상동작을 안하나요??

답변 3

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 지훈님

제가 이 강의를 촬영하던 시점에는 스프링 부트 버전 2.1.x인데요. 이 버전은 기본으로 JUnit을 4 버전을 사용하고 있습니다.

그래서 해당 부분이 적용이 안됩니다.

만약 Junit5를 사용하고 싶으시면 스프링 부트 버전도 최신으로 함께 맞추는 것을 권장드립니다.

스프링 부트 버전을 최신으로 변경하면 JUnit이 5로 변경되는데 그 부분이 강의와 다르니 주의해서 개발하시면 됩니다.

감사합니다.

0

김영한님의 프로필 이미지
김영한
지식공유자

네 지훈님 저도 이 부분은 정확히 모르겠는데, 아마도 JUnit4를 제거하시면 원하는데로, 정상 동작할꺼에요.

0

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

답변 감사합니다.

사실 @Runwith 쓰고 하면 상관은없지만.. 뭐가 문제인지 궁금합니다ㅠ

제 프로젝트 스프링 부트 버전은 2.3.5인데도 @Runwith가 없으면 동작하지 않습니다..
물론  테스트 클래스는 junit5로 만들었구용



Gradle 펼쳐서 보니까 junit:4.12 이렇게 표시되는데 혹시 이게 문제일까요??
외부 라이브러리 보면 junit:4.12와 junit5.6.3 둘다 들어있습니다.

이지훈님의 프로필 이미지
이지훈

작성한 질문수

질문하기