[TIL] 221018 - 자바 : 단위 테스트

yujamint·2022년 10월 18일
0

TIL

목록 보기
9/9

테스트

작성한 함수가 정상적으로 작동하는지 확인하기 위해 설계하는 코드

📌 TDD : 함수를 구현하기 이전에 함수에서 발생할 수 있는 예외 시나리오를 모두 생각한 뒤에 이를 바탕으로 코드 설계하는 개발 방법

테스트 함수를 먼저 구현한 뒤에 기능을 구현하면 속도는 느려질 수 밖에 없지만, 프로그램의 오류를 미리 고려하고 구현하기 때문에 안정성을 높일 수 있다.

테스트 종류

  • Integration Test(통합 테스트) : 모듈 간의 호환성 확인하기 위해 수행하는 테스트
  • Unit Test(단위 테스트) : 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트
    • 여기서의 모듈은 애플리케이션에서 작동하는 하나의 기능 또는 메소드

단위 테스트

== 유닛 테스트

특징

  • 해당 부분만 독립적으로 테스트하기 때문에 어떤 코드를 리팩토링하여도 빠르게 문제 여부를 확인
  • 함수와 메소드에 대한 모든 테스트 케이스가 통과하는지 확인하는 절차

좋은 테스트란?? (FIRST)

Fast: 테스트는 빠르게 동작하여 자주 돌릴 수 있어야 함
Independent: 각각의 테스트는 독립적이며 서로 의존해서는 안됨
Repeatable: 어느 환경에서도 반복 가능해야 함
Self-Validating: 테스트는 성공 또는 실패로 bool 값으로 결과를 내어 자체적으로 검증되어야 함
Timely: 테스트는 적시에 즉, 테스트하려는 실제 코드를 구현하기 직전에 구현해야 함

📌 given-when-then 패턴

  • 1개의 단위 테스트를 3가지 단계로 나누어 처리하는 패턴이다.
    • given (준비) : 어떠한 데이터가 준비되었을 떄
    • when (실행) : 어떠한 함수를 실행하면
    • then (검증) : 어떠한 결과가 나와야 한다.

JUnit5

자바에서는 JUnit5AssertJ를 함께 이용해서 테스트를 진행한다.

테스트 인스턴스 라이프사이클

  • @BeforeAll : 클래스 맨 처음에 실행
  • @AfterAll : 클래스 맨 끝에 실행
  • @BeforeEach : 테스트 하나 시작할 때마다 실행
  • @AfterEach : 테스트 하나 끝날 때마다 실행
profile
개발 기록

0개의 댓글