[Java] Junit, AssertJ의 개념, 사용법

윤성철·2024년 4월 21일

Back-End

목록 보기
1/22
post-thumbnail

Springboot로 프로젝트를 수행하면서, 테스트코드에 대한 필요성을 느끼지 못했고, 그로 인해 공부해야겠다는 생각으로 이어지지 못했다. 이번에 JPA를 제대로 공부하면서 그간의 부족했던 점을 인지하고, 개선하기 위해 단위 테스트를 도입하고자 공부하게되었다.

Junit이란?

  • 자바를 위한 단위 테스트 오픈소스 라이브러리
  • 자바 애플리케이션에 대한 단위 테스트를 쉽게해주는 테스트용 프레임워크

단위테스트 Unit Test란?

-모든 함수와 메소드에 대한 테스트 케이스를 작성하는 절차

Junit의 어노테이션

  • @Test
    : 메소드 위에 해당 어노테이션을 선언해, 테스트 대상 메소드 지정
  • @Test(expected=예외)
    : 해당 테스트 메소드 예외 발생 여부에 따라 성공/실패를 판별할 수 있다.
  • @Ignore
    : 해당 어노테이션이 선언된 테스트 메소드 실행 X
  • @Before
    : 모든 @Test메소드가 실행되기 전에 실행되는 메소드를 지정하는 어노테이션
  • @After
    : 해당 테스트 클래스가 실행이 끝난 뒤에 딱 한번만 수행되는 테스트 메소드를 지정하는 어노테이션

AssertJ란

자바 Junit의 테스트코드에 사용되어, 테스트코드의 가독성과 편의성을 높여 주는 라이브러리
import static org.assertj.core.api.Assertions.*;

  • 주요 특징
    -메서드 체이닝 -> 직관성, 가독성 ↑
    -테스트에 필요한 풍부한 메소드 제공

  • 예시

 @Test
    public void testSample() throws Exception{
        Assertions.assertThat("The Lord of the Rings").isNotNull()
                .startsWith("The")
                .contains("Lord")
                .endsWith("Rings");
    }

코드에서 볼 수 있듯이, 메소드 체이닝을 통해 직관적이고 가독성이 높다!

  • 그외 메소드가 다양하지만, 따로 암기하기보다 Intellij의 도움을 받아서 적절히 사용하면 될 것 같다.
    isEqualTo(Object o): equals()로 실제값이 기대값과 내용이 같은지 검증

▶ isNotEqualTo(Object o): equals()로 실제값이 기대값과 내용이 다른지 검증

▶ isInstanceOf(Class<?> type): 실제값이 기대값 타입의 인스턴스인지 검증

▶ isNotInstanceOf(Class<?> type): 실제값이 기대값 타입의 인스턴스가 아닌지 검증

▶ isSameAs(Object o): ==으로 실제 값이 기대값과 주소값(참조값)이 같은지 검증

▶ isNotSameAs(Object o): ==으로 실제 값이 기대값과 주소값(참조값)이 같은지 검증

그 외 기타 등등..

profile
내 기억보단 내가 작성한 기록을 보자..

1개의 댓글

comment-user-thumbnail
2024년 10월 11일

잘보고갑니다

답글 달기