JUnit 이란

Unit은 자바에서 단위 테스트 작성을 위한 프레임워크다.

JUnit 5

  • JUnit의 이전 버전과 달리 여러 모듈로 구성되어있다.
  • JUnit 5 = JUnit 플랫폼 + JUnit Jupiter + JUnit Vintage
  • JUnit 플랫폼: JVM에서 테스트 프레임워크를 실행하기 위한 기초 역할을 한다. TestEngine플랫폼에서 실행되는 테스트 프레임 워크를 개발하기 위한 API를 정의한다.
  • JUnit Jupiter: JUnit 5을 지원하는 TestEngine구현체
  • Vintage: JUnit 4와 3을 지원하는 TestEngine구현체

Annotations

  • @Test: 테스트 메서드라는 것을 나타내느 어노테이션
  • 생명주기 어노테이션
    • @BeforeAll: 해당 클래스에 위치한 모든 테스트 메서드 실행 전에 딱 학 번 실행되는 메서드
    • @AferAll: 해당 클래스에 위치한 모든 테스트 메서드 실행 후에 딱 한 번 실행되는 메서드
    • @BeforeEach: 해당 클래스에 위치한 모든 테스트 메서드 실행 전에 실행되는 메서드
    • @AfterEach: 해당 클래스에 위치한 모든 테스트 메서드 실행 후에 실행되는 메서드
  • @Disabled: 테스트를 하고 싶지 않은 클래스나 메서드에 붙이는 어노테이션
  • @DisplayName: 어떤 테스트인지 쉽게 표현할 수 있도록 해주는 어노테이션
  • @ParameterizedTest: 테스트에 여러 다른 매개변수를 대입해가며 반복 실행할 때 사용하는 어노테이션
  • @Nested: 테스트 클래스 안에서 내부 클래스를 정의해 테스트를 계층화 할 때 사용. Before/After과 같은 테스트 생명주기에 관계된 메소드들도 계층에 맞춰 동작한다.

Assertions

  • 테스트 케이스의 수행 결과를 판별하는 메서드
  • 모든 JUnit Jupiter Assertions는 static 메서드
  • assertAll(): 매개변수로 받는 모든 테스트코드를 한 번에 실행. 오류가 나도 끝까지 실행한 뒤 한에 모아서 출력
  • assertThorws(): 예외 발생을 확인하는 테스트
  • assertTimeout(): 특정 시간 안에 실행이 완료되는지 확인
  • assumeTrue(): false일 때 이후 테스트 전체가 실행되지 않음
  • assumingThat(): false일 때 파라미터로 전달된 코드 블럭만 실행되지않음

댓글남기기