본문 바로가기
개발/Java

[Java] 자바로 TDD 시작하기

by devhooney 2023. 7. 20.
728x90

최범균님의 '테스트 주도 개발 시작하기'를 읽으면서 정리해본 글.

 

1. TDD 이전의 개발

1. 만들 기능에 대해 설계를 고민한다. 어떤 클래스와 인터페이스를 도출할지 고민하고각 타입에 어떤 메서드를 넣을지 시간을 들여 생각

2. 1번 단계를 수행하면서 구현에 대해서도 고민한다. 대략 어떻게 구현하면 될지 머릿속에 그려지면 코드 작성

3. 기능에 대한 구현을 완료한 것 같으면 기능을 테스트한다. 이 과정에서 원하는 대로 동작하지 않거나 문제가 발생하면 2번 단계에서 작성한 코드를 디버깅 하면서 원인을 찾는다.

 

2. TDD 맛보기

TDD는 구현이 먼저가 아닌 테스트부터 시작한다.

간단한 덧셈 기능을 TDD로 구현하면

public class CalculatorTest {
    @Test
    void plus() {
        int result = Calculator.plus(1, 2);
        Assertions.assertEquals(3, result);
    }
}

코드를 작성하면

Calcluator 클래스가 없다고 컴파일 에러가 발생한다.

 

Calculator 클래스를 작성해준다.

public class Calculator {
    public static int plus(int a, int b) {
        return 3;
    }
}

덧셈 메서드인 만큼 a와 b를 더한 것을 return해주면 되지만, TDD는 이렇게 작은 단계부터 차근차근 변경해가야 한다.

 

public class Calculator {
    public static int plus(int a, int b) {
        return a+b;
    }
}

 

이렇게 수정하면

public class CalculatorTest {
    @Test
    void plus() {
        int result = Calculator.plus(1, 2);
        Assertions.assertEquals(3, result);
        int result2 = Calculator.plus(2, 3);
        Assertions.assertEquals(5, result);
    }
}

 

이렇게 작성 후 테스트를 실행하면 다 통과한다.

테스트가 작성이 완료되면 Calculator 클래스를 src/test/java 에서 src/maain/java 하위로 옮겨준다.

테스트 코드는 배포하지 않고 실제 코드만 배포하기 위함이다.

 

728x90