240909 내일배움캠프 백엔드 Java 6기 TIL : 테스트

박대현·2024년 9월 9일
0

테스트

단위테스트란?

  • 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지 확인하는 기법
  • 빠르게 작성 가능, 정확한 원인 파악 빠르게 가능

Before - After

  • @BeforeEach : 각각의 테스트코드 실행 전 수행
  • @AfterEach : 각각의 테스트코드 실행 후 수행
  • @BeforeAll : 모든 테스트코드 실행 전 수행
  • @AfterAll : 각각의 테스트코드 실행 후 수행

Util

  • @DisplayName("내용") : 네이밍
  • @Nested : 그룹화
  • @Order : 순서지정

반복

  • @RepeatedTest
@RepeatedTest(value = 5, name = "반복 테스트 {currentRepetition} / {totalRepetitions}")
void repeatTest(RepetitionInfo info) {
    System.out.println("테스트 반복 : " + info.getCurrentRepetition() + " / " + info.getTotalRepetitions());
}
  • @ParameterizedTest
@DisplayName("파라미터 값 활용하여 테스트 하기")
@ParameterizedTest
@ValueSource(ints = {1, 2, 3, 4, 5, 6, 7, 8, 9})
void parameterTest(int num) {
    System.out.println("5 * num = " + 5 * num);
}

Assertions

  • assertEquals(기대값, 판별할 코딩)
  • assertTrue(boolean:판별할 코딩)
  • assertNotNull(판별할 코딩)
  • assertThrows
@Test
@DisplayName("assertThrows")
void test4() {
    IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> calculator.operate(5, "?", 2));
    assertEquals("잘못된 연산자입니다.", exception.getMessage());
}

Mockito란?

  • 테스트 실행만을 위해 임시로 만든 가짜객체

통합테스트란?

  • 두개 이상의 모듈이 연결된 상태를 테스트할 수 있음
  • @SpringBootTest
    • 스프링이 동작되도록 해주는 애너테이션
      • IoC/DI 가능
      • Repo를 사용한 DB CRUD가능

0개의 댓글