영한님 강의를 듣던 도중 나온 테스트 케이스 작성을 정리해봤습니다.
단위 테스트 - 동작 단위 단위 쪼개서 순수한 자바 코드만으로 테스트를 하는 것
통합 테스트 - 테스트에 스프링을 올려 놓고 테스트를 하는 것
어느 게 무조건 더 좋다라고 말하기는 힘들지만 통합 테스트 보단 단위 테스트를 하는 훈련을 할 것
통합 테스트
단위테스트
import org.assertj.core.api.Assertions
import org.junit.jupiter.api.Assertions
Assertions는 두가지 종류가 있는데
assertj의 경우 assertThat(A).isEqualTo(B)를 이용해 두 개의 값을 비교할 수 있다.
junit의 경우 assertEquals(A, B)를 이용해 두 개의 값을 비교할 수 있다.
좌측에 있는 run 버튼을 통해 테스트를 할 수 있다.
class 좌측 버튼은 클래스 안에 있는 케이스 전체를 테스트
케이스 좌측 버튼은 해당 케이스만 테스트
주의할 점
작성 순서대로 테스트가 동작하지 않아 기대했던 값이 나오지 않는 문제가 발생했다.
그렇기 때문에 테스트 케이스 실행 이후 저장소를 비워주는 메소드가 필요하다.
* 테스트는 작성 순서대로 동작하지 않는다.
일반 클래스에 strore를 clear 해주는 메소드를 작성해주고
케이스가 끝날 때 마다 실행될 수 있게 어노테이션 @AfterEach가 적용된 메소드를 테스트 클래스에 넣어주면
문제 없이 테스트를 통과할 수 있다.
패키지 내 전체 케이스를 테스트 하고 싶다면 이곳에서 하면 된다.
'Java > Spring' 카테고리의 다른 글
자바 코드로 스프링 bean 직접 등록 (0) | 2021.08.23 |
---|---|
컴포넌트 스캔과 자동 의존관계 설정 (0) | 2021.08.22 |
assertThrows (0) | 2021.08.22 |
Optional - 미완료 (0) | 2021.08.22 |
API 방식 (객체 반환) (0) | 2021.08.21 |