TIL
2023.01.26 단위 테스트
냥집발사자
2023. 1. 27. 00:31
- 통합 테스트와 단위 테스트
- 단위 테스트 : 가장 작은 단위의 테스트 방식. 메서드 단위로 테스트를 수행하고, 의도한 결과값이 나오는지 확인하는 수준 (ex: controller, service, repository… 격리해서 따로따로)
- 통합 테스트 : 어플리케이션이 정상적으로 동작하는지 확인. 여러모듈을 함께 테스트 (ex: controller 메소드를 호출하면 controller → service→ repository 모두 수행)
- F.I.R.S.T 원칙
- Fast : 단위 테스트는 빨라야 한다.
- Independent : 단위 테스트는 각각의 테스트가 연관되지 않고, 고립되어야 한다. 즉 독립적 이어야 한다.
- Repeatable : 단위테스트는 반복 가능해야한다. 반복적으로 테스트를 시행해도, 결과는 같아야 한다.
- Self-validating : 자체적으로 테스트 결과가 도출되야한다. (개발자가 print 찍어서 비교하는게 아니고 자동으로 수행되며 성공/실패 의 결과가 나오는 것)
- Timely : 단위 테스트는 실제 코드보다 먼저 구현해야한다. (TDD일 경우에만 해당)
- Given-When-Then 패턴
- Given : 테스트에 필요한 변수를 정의하거나 Mock 객체를 통해 특정 상황에 대한 행동을 정의합니다.
- When: 실제 테스트를 하는 메소드가 호출되며 테스트를 통한 결과값을 가져옵니다.
- Then: When 단계에서 나온 결과값을 검증하는 작업을 수행합니다.
- JUnit의 생명 주기
- @BeforeAll : 테스트를 시작하기 전에 호출되는 메서드
- @BeforeEach : 각 테스트 메서드가 실행되기 전에 동작하는 메서드
- @AfterAll : 테스트를 종료하면서 호출되는 메서드
- @AfterEach : 각 테스트 메서드가 종료되면서 호출되는 메서드