반응형

📝단위테스트 (Unit Test)

단위는 일반적 클래스 또는 메소드 수준으로 단위 크기가 작을수록 단위 복잡성이 낮아진다. 즉, 단위 크기르 ㄹ작게 설정해 단위 테스트를 최대한 간단하고 디버깅 쉽게 작성해야한다.

 

// 단위테스트 예제 코드

@DisplayName("자동차가 전진한다")
@Test
public void moveCar() {
    // given
    Car car = new Car("dani");

    // when
    car.move(4);

    // then
    assertThat(car.getPosition()).isEqualTo(1);
}

 

📝통합테스트 (Integration Test)

단위 테스트보다 더 큰 동작을 달성하기 위해 여러 모듈을 모아 테스트하는 것입니다. (DB연결 + 다른 파트 연결 + 솔루션 연결 등...)

발견하기 어려운 버그를 찾을 수 있다는 점이 좋습니다. 예를 들어 환경 버그 (싱글 코어에서는 잘 되지만 쿼드 코어에서는 안 된다 등...) 

 

// 통합테스트
@SpringBootTest
class ApplicationTests {
    @Autowired
    private HelloController helloController;

    @DisplayName("hello 엔드포인트 테스트")
    @Test
    void 컨텍스트_로딩_테스트() {
        assert helloController != null;
    }
}

 

  • 통합테스트 어노테이션 종류
  •  
종류 요약 Bean 범위
@SpringBootTest 전체 테스트 어노테이션 애플리케이션에 주입된 Bean 전체
@WebMvcTest Controller Layer 테스트 MVC 관련 Bean (Controller, Service)
@DataJpaTest Jpa (DB I/O) 테스트 JPA 관련 Bean (EntityManager)
@RestClientTest Rest API 테스트 RestTemplate 등 일부 Bean
@JsonTest Json 데이터 테스트 Json 관련 일부 Bean

 

📝인수테스트

비즈니스쪽에 초점을 두며 프로젝트 참여하는 사람들이 토의해 테스트 시나리오를 작성하고 개발자는 이에 의거해 코드를 작업한다

 

 

🔗 참고 및 출처

https://blog.neonkid.xyz/272

https://tecoble.techcourse.co.kr/post/2021-05-25-unit-test-vs-integration-test-vs-acceptance-test/

반응형