단위 테스트의 대상은 주로 메서드 단위가 된다!
독립적이고 작은 단위일수록 좋음
빠르고! 쉽게!
제 3자(사용자)의 입장에서 애플리케이션이 제공하는 기능이 올바르게 동작하는지 테스트
테스트의 주체 : 제 3자(사용자)
❗️영역이 너무 크기 때문에 단위 테스트라고 할 수 없음
애플리케이션을 만든 개발자(개발팀)가 테스트
클라이언트 측 툴 없이 테스트 코드로 이루어지는 경우가 대부분
❗️여전이 영역이 크다! 단위 테스트 x
애플리케이션을 특정 계층으로 나눠서 진행하는 테스트
❗️대상이 되긴 하지만, DB와 연동하기 때문에 단위 테스트라는 말보단 슬라이스 테스트라고 칭함
DB 연동 테스트 ➡️ 테스트 전/후의 DB 상태가 같다면 DB연동도 단위 테스트에 포함 가능
Fast(빠르게) : 자주 많이 돌릴거니까!
Independent(독립적) : 다른 코드에 상관없이 돌아가야 하니까!
Repeatable(반복 가능하도록)
Self-validating(셀프 검증) : 성공 / 실패 판단
Timely(시기 적절하게) : TDD - 테스트 할 기능을 구현하기 전에 작성
Java기반 Application을 테스트하기 위한 오픈소스 테스트 프레임워크
@Test
@DisplayName("test name") : 테스트 이름 설정
assertEquals()
assertNotNull()
assertThrows()
assertNotThrows()
etc..
테스트를 하기 전, 객체나 데이터의 초기화 작업
@BeforeEach : 각 메소드 실행 전 호출
@BeforeAll : 맨 처음 한 번 호출 ➡️ 정적 메소드여야 함
테스트 종료 후 후처리
@AfterEach
@AfterAll