단위 테스트
- 단위 테스트는 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지를 검사하는 테스트 기법이다.
- 단위 테스트는 빠르게 작성할 수 있고 문제 발생 시 어느 부분이 잘 못 되었는지를 빠르고 정확하게 확인할 수 있다는 장점이 있다.
- 하나의 모듈이나 클래스에 대해 세밀한 부분까지 테스트가 가능하다.
- 하지만 모듈 간에 상호 작용 검증은 할 수 없다.
Given-When-Then 패턴은 Test Code 스타일을 표현하는 방식을 뜻한다.
Given
- 테스트 하고자하는 대상을 실제로 실행하기 전에 테스트에 필요한 값(상태)을 미리 선언해 둔다.
When
- 테스트 하고자하는 대상을 실제로 실행 시킨다.
Then
- 어떤 특정한 행동(테스트 대상 실행) 때문에 발생할거라고 예상되는 결과에 대해 예측하고 맞는지 확인한다.
통합 테스트
- 두 개 이상의 모듈이 연결된 상태를 테스트할 수 있다.
- 모듈 간의 연결에서 발생하는 에러 검증 가능하다.
- Spring Boot를 이용한 통합 테스트
- 통합 테스트
- 여러 단위 테스트를 하나의 통합된 테스트로 수행한다.
- 단위 테스트 시 Spring은 동작되지 않는다.
- "@SpringBootTest"
- 스프링이 동작되도록 해주는 애너테이션이다.
- 테스트 수행 시 스프링이 동작한다.
- Spring IoC/DI 기능을 사용 가능하다.
- Repository를 사용해 DB CRUD가 가능하다.