-
[Spring] Test 코드 기초작성Spring 2021. 10. 4. 16:06
요즘은 테스트 코드를 작성하고 개발하는데에 사용하는 것이 필수라고 한다.
때문에 처음 배운 테스트 코드 작성을 기록한다.
한개의 클래스와 3개의 함수를 만들었다.
때문에 3개의 함수가 잘 돌아가는지에 대해 코드를 작성할 예정이다.
해당 클래스에 대해 테스트코드를 작성할 때에는 실제 메인폴더와 경로를 똑같이 설정해주고
이름도 뒤에 Test만 붙인다.
실제 save함수와 테스트용 save함수
테스트를 할때는 어노테이션 @Test를 붙인다.
테스트코드 자체는 큰 그게 없지만, 마지막줄에 조금 차이가 있다.
테스트 시에 결과값을 비교하는 함수는 여러가지 있지만, 인프런 김영한 선생님은 한가지 방법을 추천한다.
Assertions.assertThat()
Assertion클래스는 두가지가 있는데 junit에서 지원하는것이 아닌 assertj에서 지원하는 것을 추천해주셨다.
이 또한 alt+enter를 눌러 static import를 해 좀 더 간소화 할 수 있다.
assertThat(member).isEqualTo(result);
해당 코드를 통해 member 변수와 result변수의 주소값을 비교하는 것 같다.
주소값이 같을 시에 테스트는 초록색빛과 함께 통과처리되면 그렇지 않으면 빨간색 빛이나며 오류가 된다.
여럿 테스트 동시에 하기
여럿 함수를 동시에 테스트를 하면, 테스트 도중 변경된 데이터 때문에 제대로된 테스트가 안될 수있다.
때문에 함수하나가 끝날때마다 데이터를 초기화시켜주는 함수를 사용해야한다.
@AfterEach 라는 어노테이션을 써 각 함수가 끝날때마다 실행하게 해주고,
초기화 함수를 작성해 여러개의 테스트를 동시에 진행할수있도록 해야한다.
@BeforeEach 라는 어노테이션을 써 각 함수가 실행되기 전에 인스턴스를 새로 할당해주어 초기화 해주는 방법도 있다.
에러 메세지 확인하기
void 중복회원예외(){ //given Member member = new Member(); member.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //when memberService.join(member); // 첫번째 방법 IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2)); // 두번째 방법 assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); //then }
방법은 두가지가 있다.
오류가 발생했을 때, 발생한 오류가 해당 클래스와 동일한지 보는 첫번째 방법과
오류발생 메세지를 리턴받아 문구까지 확인하는 두번째 방법이 있다.
출처 : 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 학습 페이지 (inflearn.com)
'Spring' 카테고리의 다른 글
[Spring] Form에 쏴준 데이터 받고 다시 출력하기 (0) 2021.10.06 [Spring] 스프링 빈과 의존관계 (0) 2021.10.05 [Spring] 웹 개발 기초 (0) 2021.10.01 [Spring] Welcome Page 만들기 (0) 2021.09.28 [Spring] 프로젝트 생성 후 구조 겉핥기 (0) 2021.09.27