Springboot_testcode

h_zee·2024년 4월 11일
0

SpringBoot

목록 보기
7/8

IntelliJ에서 테스트코드를 작성할 때, JUnitAssertJ를 많이 사용한다.

그래서 둘의 특징을 한 번 살펴보려한다.

JUnit

📖 JUnit 이란?

자바 언어를 위한 단위 테스트 프레임워크.
(단위테스트 : 작성한 코드가 의도대로 작동하는지 작은 단위 (ex.메서드) 로 검증하는 것 )

📖 JUnit 특징

  • 테스트 방식을 구분할 수 있는 애너테이션을 제공한다.
  • @Test 애너테이션으로 메서드를 호출할 때마다 새 인스턴스를 생성하고 독립테스트가 가능하다.
  • 어설션 메서드를 제공한다.
  • 직관적이다.
  • 테스트 코드를 작성하는 데 소요되는 시간이 적다.
  • 자동실행되며, 자체 결과를 확인하고 즉각적인 피드백을 제공해준다.

AssertJ

📖 AssertJ 란?

jUnit과 함께 사용하여 검증문의 가독성을 높여주는 라이브러리.

📖 AssertJ 특징

1) 가독성이 높다.

# JUnit 
Assertions.assertEquals(a,b);

# AssertJ
assertThat(a).isEqualTo(b);

Junit 에서 제공하는 메서드를 사용한 코드를 보면, 어느것이 기댓값이고 어느것이 비교값인지 잘 구분이 되지 않는다.

지금은 이것이 별로 문제라고 생각되지 않을 수 있지만, 대규모 프로젝트를 진행하다보면 명확하지 않은 코드가 실수로 이어질 수 있기때문에 가독성을 높이는 것은 매우 중요한 문제라고 할 수 있다.

이러한 문제를 해결할 때, AssertJ 가 그 방법이 될 수 있다.

AssertJ 에서 제공하는 메서드를 사용한 코드를 보면, a가 비교값이고 b가 기댓값임을 쉽게 유추할 수 있다.

이와같이 AssertJ를 사용하면 가독성을 높일 수 있다.

✏ AssertJ는 다양한 메서드들을 제공한다. 다음은 자주 사용되는 메서드들이다.

  • isEqualTo(A) / isNotEqualTo(A)
  • contains(A) / doesNotContain(A)
  • startsWith(A) / endsWith(A)
  • isEmpty() / isNotEmpty()
  • isPositive() / isNegative()

2) 실패 메시지를 자세하게 보여준다.

실패 메시지를 자세하게 보여주기 때문에, 원인을 파악하는데 용이하다.

3) 다양한 검증 메서드를 제공한다.

JUnit은 비교적 간단한 메서드만을 제공해준다. 하지만, AssertJ 의 경우 다양한 메서드를 제공해주어 코드를 쉽게 작성할 수 있게 해주고, 가독성을 높여준다.

✨ 이 외에도 다양한 특징들이 존재한다. 앞으로 JUnitAssertJ 의 특징을 정확히 알고 사용해야겠다!


✍️ 공부한 내용을 정리하는 공간이기 때문에, 정확하지 않은 사실이 들어갈 수 있습니다.


◼ 참고자료

  • 스프링 부트 3 백엔드 개발자 되기
profile
하루하루 성실하게 (비공개 블로그입니다-일부공개)

0개의 댓글

관련 채용 정보