04장 스프링 부트 3와 테스트

올찬·2023년 9월 30일
0

💡 이 글은 골든래빗 《스프링 부트 3 백엔드 개발자 되기 - 자바 편》의 04장 써머리입니다.

핵심 키워드

  • Junit: 자바 언어를 위한 단위 테스트 프레임워크
    • 단위 테스트: 메서드 단위의 코드가 의도한 대로 작동하는지 검증하는 일
    • 단위 테스트를 실행할 때마다 새 객체를 만들어 테스트 간 영향을 주지 않도록 함
      package me.allchan.springbootdeveloper;
      
      import org.junit.jupiter.api.AfterEach;
      import org.junit.jupiter.api.BeforeEach;
      import org.junit.jupiter.api.Test;
      
      public class JUnitLifecycleTest {
          public JUnitLifecycleTest() {
              System.out.println("new JUnitLifecycleTest");
          }
      
          @BeforeEach
          void setUp() {
              System.out.println("setUp");
          }
      
          @Test
          void testA() {
              System.out.println("test A");
          }
      
          @Test
          void testB() {
              System.out.println("test B");
          }
      
          @AfterEach
          void tearDown() {
              System.out.println("tearDown");
              System.out.println();
          }
      }
      new JUnitLifecycleTest
      setUp
      test A
      tearDown
      
      new JUnitLifecycleTest
      setUp
      test B
      tearDown
    • @BeforeAll: 전체 테스트를 시작하기 전 처음으로 한 번 실행할 메서드(ex.DB환경 초기화), static으로 선언
    • @AfterAll: 전체 테스트를 마치기 전에 한 번 실행할 메서드(ex.DB연결 자원 해제), static으로 선언
  • AssertJ: 검증문의 가독성을 높여주는 라이브러리
    • assertThat(articleResponseDto.getTitle()).isEqualTo(createArticleRequestDto.getTitle());
    • that절 안의 내용이 작성된 코드, to절 이하가 기대하는 결과
  • @Test
    • 테스트를 실행할 메서드에 지정하는 애노테이션, 접근제어자가 private이면 안 됨
    • given(테스트 실행 준비)-when(테스트 진행)-then(테스트 결과 검증) 패턴이 사용됨
  • @SpringBootTest: @SpringBootApplication이 붙은 클래스에 속한 Bean을 찾은 다음 테스트를 위한 애플리케이션 컨텍스트 생성
  • @AutoConfigureMockMvc: MockMvc를 생성하고 자동으로 구성, 프로그램을 서버에 배포하지 않고 테스트용 MVC 환경을 만들어 요청 및 전송, 응답 기능을 제공함
profile
묘공단 스터디 블로그