Junit

김지윤·2023년 2월 14일
0

Spring

목록 보기
6/10

Junit이란?

  • 테스트 케이스 작성하는 프레임워크
  • java 8부터 제공
  • 스프링 부트에서 기본 제공

어노테이션 종류

  • @Test : 단위 테스트임을 명시
    @Test(timeout=5000) : 실행시간 5000밀리초 초과시 실패

given, when, then 구조

  • given : 데이터 준비
  • when : 실행 함수
  • then : 결과
  • @BeforeAll : 전체 메소드들을 실행 전에 한번 실행되는 메소드
  • @AfterAll : 전체 메소드들을 실행 후에 한번 실행되는 메소드
  • @BeforeEach : 각각의 메소드들 실행 전에 무조건 실행되는 메소드
  • @AfterEach : 각각의 메소드들 실행 후에 무조건 실행되는 메소드
    ex. 각 메소드 실행 후 저장소 값을 비워줄 때
  • @Disabled : 임시로 테스트 메소드를 실행하고 싶지 않을 때
  • @DisplayName : 테스트를 눈에 띄게 하기위해 공백, Emoji, 특수문자를 지원
  • @RepeatedTest : 테스트를 반복적으로 하고 싶을 때, 횟수와 이름 설정 가능
  • @ParameterizedTest : 매개변수들을 대입하며 반복적으로 테스트할 때
  • @Nested : 테스트 클래스 안에 내부 클래스를 사용하고 싶을 때



Assertions (단정) 메소드

단정 메소드를 이용하여 결과를 판별

<org.junit.jupiter.api의 메소드>

  • assertArrayEquals(a,b) : 배열 a,b가 일치하는지
  • assertEquals(a,b) : 객체 a,b가 같은 값을 가지는지
  • assertSame(a,b) : a,b가 같은 객체인지
  • assertTrue(a) : a가 참인지
  • assertNotNull(a) : a가 null이 아닌지.
  • assertTimeout(시간, 로직) : 시간 안에 실행 완료 가능한지 테스트
  • 예외 정상 발생 확인법
    assertThrows(NullPointerException.class, () -> { 예외 예시 }); : 예시에 NullPointerException 발생하면 실행결과는 성공

org.assertj에 있는 메소드

  • assertThat(actual).isEqualTo(expected); : assertEquals보다 좀 더 쉽게 읽힌다. 값의 동일 여부 비교
  • assertThar().isSameAs(); : 객체 동일 여부 비교

Assumption (전제문) 메소드

  • assumeTrue : true가 아니면 테스트 전부 실행X
  • assumingThat : 파라미터의 코드만 실행 안시킴

Test 작성시 주의사항

  • System.out.println처럼 출력문은 되도록 사용하지 않는 것이 좋다.
profile
꾸준하게 공부하고 기록하는 개발자

0개의 댓글