본문 바로가기
JAVA

TDD

by 융디's 2024. 3. 31.
728x90
TDD

TDD

@2024.03.18

테스트 주도 개발(Test-Driven Development)

💡
소프트웨어 개발 프로세스에서 테스트가 개발을 주도하는 방법론
  • 핵심 : 코드를 작성하기 전에 먼저 테스트 코드를 작성하고, 그다음에 실제 코드를 작성하는 것
  • 소프트웨어의 동작을 검증하는 자동화된 테스트를 가지게 된다.
  • 코드의 신뢰성과 유지 보수성을 향상시킨다.

1. Gradle 프로젝트 설정

💡
Gradle은 Java 프로젝트의 빌드 및 의존성 관리를 위한 강력한 빌드 도구
  • 새 프로젝트를 만들거나, 기존 프로젝트를 만들 때 Gradle을 선택하여, 프로젝트를 생성
  • 프로젝트 디렉터리에 있는 build.gradle 파일에서 종속성 및 테스트 설정 등을 구성
  • java디렉터리 : 개발자가 개발한 코드
  • test디렉터리 : 개발한 코드에 대한 테스트 코드

2. 테스트 케이스 작성

  • JUnit : 단위 테스트를 작성하고 실행하기 위한 테스팅 프레임워크
  • 테스트할 메서드 별로 @Test 를 붙인 후 해당 메서드에 테스트할 기능을 구현
    • 반환 타입은 void
    • 매개변수 x
  • 예시
    import org.junit.jupiter.api.Test;
    import static org.junit.jupiter.api.Assertions.assertEquals;
    
    public class CalculatorTest {
    
        @Test
        public void testAddition() { // testAddition()메서드를 테스트
            Calculator calculator = new Calculator();
            int result = calculator.add(2, 3);
            assertEquals(5, result); // 2 + 3 = 5 가 되는지 확인
            //assertEquals(예상 값, 실제 값)
        }
    }

3. TDD 사이클

사이클을 반복하며 개발하며, 이는 코드의 품질을 높이고 버그를 줄인다.
  1. 실패하는 테스트 작성 : 아직 구현되지 않는 기능에 대한 테스트 작성 ← 당연히 실패
  1. 테스트를 통과하기 위한 코드 작성 : 테스트를 통과하기 위한 최소한의 코드 작성
  1. 리팩토링 : 코드를 개선하고 중복을 제거 → 모든 테스트가 통과해야 한다.

728x90

'JAVA' 카테고리의 다른 글

Scanner 클래스  (0) 2024.03.31
정적 변수 vs 인스턴스 변수  (0) 2024.03.31
배열  (1) 2024.03.31
Label  (0) 2024.03.31
조건문/반복문  (0) 2024.03.31