lottie
Seungjun's blog
blog
Junit5

Junit에 대해 알아보기 이전에 스프링에서 테스트에 대해 간단히 알아보자.

간단히 보는 테스트 단계

  1. 단위 테스트(Unit Test)

    • Junit5가 속하는 부분의 테스트로 원하는 부분만 테스트 함으로써 결과를 빠르게 확인 할 수 있다.


    • 미리 작성한 단위 테스트를 기반으로 프로덕션 코드의 리팩토링을 안정적으로 할 수 있다.


    • 네트워크나 데이터 베이스 같은 외부 리소스를 테스트에 포함시키지 않는다.


  2. 통합 테스트 (Intergration Test)

    • @SpringBootTest 어노테이션이 속하는 부분


  3. 슬라이스 테스트 (Slice Test)

    • @DataJpaTest, @WebMvcTest, @RestClientTest 등이 이에 속한다


  4. 모의 객체 테스트(Mocking Test)

    • Mockito, EasyMock 등이 이에 속한다


  5. 테스트 자동화 (Automated Testing)


  6. 테스트 데이터 관리


Junit5 주요 Annotations

  • @BeforeEach

    각각의 테스트 메서드 실행 이전에 매번 실행


  • @AfterEach

    각각 테스트 메소드 실행 이후에 실행


  • @BeforeAll

    현재 클래스의 모든 테스트 메서드 실행 이전에 한 번만 실행

    static으로 선언되어야 한다


  • @AfterAll

    현재 클래스의 모든 테스트 메소드 실행 이후에 한번만 실행

    static으로 선언되어야 한다


  • @DisplayName

    Test Class 나 Test Method에 사용자 정의 이름 지정 가능하다.

    공백, 특수문자, 이모지 등 입력 가능하며 test report 나 IDE에서 확인 가능하다.


  • @Disabled

    테스트를 비활성화시켜서 테스트를 skip 할 수 있도록 한다.


Assertion 기본 메소드 종류


assertTrue, assertFalse

argument로 특정 조건 및 boolean 값을 넘기고 assertTrue인 경우 false일때, assertFalse인경우 true일때, junit 에러를 발생시키며 message를 메시지로 리턴한다.


assertNotNull, assertNull


argument로 객체를 넘기면 객체가 null 일경우와 not null 일 경우 예외 메시지로 message를 리턴하게 된다. 위의 두가지 메소드와 엇비슷한 용도로 사용된다.


assert*로 시작하는 메소드들이 메서드들은 해당 라인에서 assert에 해당하지 않는 Exception이 발생할 경우 그 즉시 모든 Test를 멈추고 에러메시지를 띄우고 Test는 중단된다.