Java

테스트 코드 기본 세팅

doopang 2023. 1. 4. 15:03
import java.util.ArrayList;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.DisplayNameGeneration;
import org.junit.jupiter.api.DisplayNameGenerator;
import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;

@DisplayName("테스트 코드") // 이름 지정
@DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class) // 메서드명 언더바(_) 제거
@TestMethodOrder(MethodOrderer.OrderAnnotation.class) // 테스트 실행 순서 지정
class DefaultTest {

  @Test
  @Order(2)
  void 테스트_실행1() {
    System.out.println("테스트1");

    // given
    List<String> testList = new ArrayList<>();
    testList.add("a");
    testList.add("b");
    testList.add("c");

    // when
    boolean result = "a".equals(testList.get(0));

    // then
    assertThat(result).isTrue();
  }

  @Test
  @Order(1)
  void 테스트_실행2() {
    System.out.println("테스트2");

    // given
    List<String> testList = new ArrayList<>();
    testList.add("a");
    testList.add("b");
    testList.add("c");

    // when
    int result = testList.size();

    // then
    assertThat(result).isEqualTo(3);
  }

  @BeforeAll
  static void 테스트_전에_한번만_실행() {
    System.out.println("@BeforeAll: 테스트 전에 한번만 실행");
  }

  @BeforeEach
  void 테스트_전에_실행() {
    System.out.println("@BeforeEach: 테스트 전에 실행");
  }

  @AfterAll
  static void 테스트_후에_한번만_실행() {
    System.out.println("@AfterAll: 테스트 후에 한번만 실행");
  }

  @AfterEach
  void 테스트_후에_실행() {
    System.out.println("@AfterEach: 테스트 후에 실행");
  }
}