ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JUnit이란?
    Spring Boot/테스트 2022. 1. 5. 20:52

    프로젝트를 하면서 아쉬운 점로 2가지가 있겠다. 

    하나는 데이터베이스, 둘은 테스트이다. 

     

    테스트 코드에 대한 학습이 없어서, 테스트 코드의 존재도 모르고 개발했는데 발표회에 테스트 코드를 척척 완성한 다른 팀들을 보니 너무 부러웠다. 나도 해볼꺼야.. 

     


    JUnit이란? 

    Java 언어의 단위 테스트 프레임워크이다.

    기능 단위, 메서드 단위 별로 테스트를 도와주는 도구다. 

    Hamcrest라는 JMock이라는 Matcher 라이브러리(값을 비교 할때 더 편리하게 도와주는 도구)를 같이 사용한다. 

     

    기본적으로 아래 3가지 기능을 지원한다. 

     

    - 테스트의 결과가 예상과 같은지 판별하는 assert 단정문

    - 여러 테스트에서 공동 사용하는 테스트 픽스처 

    - 테스트 작업을 수행하는 테스트 러너  

     


    코드를 써보자. 

     

    테스트를 위해서는 아래를 디펜던씨에 추가 

    testImplementation "org.assertj:assertj-core:3.19.0"

    https://www.daleseo.com/assertj/

     

    AssertJ 소개

    Engineering Blog by Dale Seo

    www.daleseo.com

     

    JUnit의 assert 메서드들

    • assertEquals(A, B) : 객체 A와 B가 같은 값을 가지는지 확인한다.
    • assertEquals(A, B, C) : 객체 A와 B가 같은 값을 가지는지 확인한다. 여기서 C는 오차범위.
    • assertArrayEquals(A, B) : 배열 A와 B가 일치하는지 확인한다.
    • assertSame(A, B) : 객체 A와 B가 같은 객체인지 확인한다.
    • assertTrue(A) : 조건 A가 참인지 확인한다.
    • assertNull(A) : 객체 A가 Null인지 확인한다.
    • assertNotNull(A) 객체 A가 Null이 아닌지 확인한다.

     

    JUnit의 어노테이션

    • @Test
      : 메서드 위에 해당 어노테이션을 선언해, 테스트 대상 메소드임을 지정할 수 있다.
    • @Test(timeout=밀리초)
      : 테스트 메소드 수행 시간을 제한할 수 있다.
      테스트메서드가 리턴값을 반환하는 데에 걸리는 시간이 지정된 밀리초를 넘긴다면 해당 테스트는 실패로 판별한다.
    • @Test(expected=예외)
      : 해당 테스트 메소드 예외 발생 여부에 따라 성공/실패를 판별할 수 있다.
      expected=에 지정된 예외가 발생해야 테스트가 성공한 것으로 판별한다.
    • @Ignore
      : 해당 어노테이션이 선언된 테스트 메서드를 실행하지 않도록 지정한다.
    • @BeforeEach == (구)@Before
      : 모든 @Test메소드가 실행되기 전에 실행되는 메서드를 지정하는 어노테이션이다.
      • 각 테스트 시작 전에 각각 호출된다.
      • @Test메서드에서 공통으로 사용되는 코드를 @Before메서드에 선언해 사용하면 좋다.
      • 테스트마다 공통으로 쓰이면서, 테스트 전에 리셋되어야 할 항목이 들어간다
    • @AfterEach == (구)@After
      : 모든 @Test메소드의 실행이 끝난 뒤에 실행되는 메서드를 지정하는 어노테이션이다.
      • 각 테스트가 끝나고 각각 호출된다.
    • @BeforeAll == (구)@BeforeClass
      : 해당 테스트 클래스가 실행될 때 딱 한 번만 수행되는 테스트 메소드를 지정하는 어노테이션이다.
    • @AfterAll == (구)@AfterClass
      : 해당 테스트 클래스가 실행이 끝난 뒤에 딱 한 번만 수행되는 테스트 메소드를 지정하는 어노테이션이다.

     

    소스 

    <공식 문서 >

    http://joel-costigliola.github.io/assertj/

    반응형
Designed by Tistory.