[spring-boot3] 테스트 코드

yoons(이윤서)·2024년 8월 8일

스프링 부트3 백엔드 개발자 되기 (자바편) 04장 : 스프링 부트 3와 테스트를 공부하고 작성한 내용입니다.
출처: https://wikidocs.net/237060

⭐ 테스트 코드

: 작성한 코드가 의도대로 잘 동작하고 예상치 못한 문제가 없는지 확인할 목적으로 작성하는 코드

  • 테스트 코드는 test 디렉터리에서 작업

  • 다양한 패턴이 존재
    - given-when-then 패턴
    1. given : 테스트 실행을 준비
    2. when : 테스트 진행
    3. then : 테스트 결과를 검증

  • 스프링 부트는 spring-boot-starter-test스타터에서 애플리케이션을 테스트하기 위한 도구와 애너테이션을 제공한다.
    (JUnit, Spring Test & Spring Boot Test, AssertJ, Mockito...)

✅ JUnit (단위 테스트 코드 만들기)

  • JUnit : 자바 프로그래밍 언어용 단위 테스트 프레임워크
    • 테스트 방식을 구분할 수 있는 애너테이션을 제공
    • @Test 애너테이션으로 메서드를 호출할 때마다 새 인스턴스를 생성, 독립 테스트 가능
    • 예상 결과를 검증하는 어설션 메서드 제공
    • 사용 방법이 단순, 테스트 코드 작성 시간이 적음
    • 자동 실행, 자체 결과를 확인하고 즉각적인 피드백을 제공

✅ AssertJ (검증문 가독성 높이기)

AssertJ는 JUnit과 함께 사용해 검증문의 가독성을 확 높여주는 라이브러리입니다. 이를테면 앞서 작성한 테스트 코드의 Assertion은 기댓값과 실제 비교값을 명시하지 않으므로 비교 대상이 헷갈립니다.

▼ 기댓값과 비교값이 잘 구분되지 않는 Assertion 예

Assertions.assertEquals(sum, a + b);

▼ 가독성이 좋은 AssertJ 예

assertThat(a + b).isEqualTo(sum);

AssertJ에서 다양한 메서드 제공

profile
개발공부하는 잠만보

0개의 댓글