단위 테스트 VS 통합테스트

김윤서·2024년 9월 9일
0

단위 테스트

  • 단위 테스트는 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지를 검사하는 테스트 기법이다.
  • 단위 테스트는 빠르게 작성할 수 있고 문제 발생 시 어느 부분이 잘 못 되었는지를 빠르고 정확하게 확인할 수 있다는 장점이 있다.
  • 하나의 모듈이나 클래스에 대해 세밀한 부분까지 테스트가 가능하다.
  • 하지만 모듈 간에 상호 작용 검증은 할 수 없다.

Given-When-Then 패턴은 Test Code 스타일을 표현하는 방식을 뜻한다.

Given

  • 테스트 하고자하는 대상을 실제로 실행하기 전에 테스트에 필요한 값(상태)을 미리 선언해 둔다.

When

  • 테스트 하고자하는 대상을 실제로 실행 시킨다.

Then

  • 어떤 특정한 행동(테스트 대상 실행) 때문에 발생할거라고 예상되는 결과에 대해 예측하고 맞는지 확인한다.

통합 테스트

  • 두 개 이상의 모듈이 연결된 상태를 테스트할 수 있다.
  • 모듈 간의 연결에서 발생하는 에러 검증 가능하다.
  • Spring Boot를 이용한 통합 테스트
    • 통합 테스트
      • 여러 단위 테스트를 하나의 통합된 테스트로 수행한다.
      • 단위 테스트 시 Spring은 동작되지 않는다.
    • "@SpringBootTest"
      • 스프링이 동작되도록 해주는 애너테이션이다.
      • 테스트 수행 시 스프링이 동작한다.
        • Spring IoC/DI 기능을 사용 가능하다.
        • Repository를 사용해 DB CRUD가 가능하다.

0개의 댓글