TDD

pepe·2025년 11월 10일

TDD의 3단계 사이클

  1. red, 실패하는 테스트를 작성
    목표를 설정하는 단계.
  	//App클래스, plus함수가 없는 상황에 test만 작성함
    public class AppTest {
        @Test
        @DisplayName("test 1")
        void t1() {
            App app = new App();
            int rs = app.plus(1, 2);

            assertEquals(3, rs);
        }
    }
  1. green, 성공하도록 만들기
    최대한 꼼수를 써서라도 테스트를 통과시킴
    어떠한 방법으로더 더 이상 꼼수를 쓸 수 없거나 구현을 쉽게할 수 있는 상태라면 구현.
  	//App클래스, plus함수를 작성하고 테스트를 실행
    public class AppTest {
        @Test
        @DisplayName("test 1")
        void t1() {
            App app = new App();
            int rs = app.plus(1, 2);

            assertEquals(3, rs);
        }
    }
    
    //꼼수(return 3)을 써서라도 일단 통과시킴
    public class App {
    public int plus(int num1, int num2) {
        return 3;
    }
}
  1. blue, 리팩토링
    리팩토링(목표를 달성하는 단계)
    리팩토링을 하면서 자연스럽게 구현을 할 수 있으면 구현을 해도 됨
    성공하는 테스트케이스를 더 추가해도 된다.
  //꼼수(return 3)을 써서라도 일단 통과시킴
    public class App {
    public int plus(int num1, int num2) {
        return num1+num2;
    }
  1. 1->2->3 식으로 나아간다.
  2. 실패하는 케이스를 만든다.
  3. 그 케이스를 고친다. (어떻게 해서든 통과시킨다)
  4. 중복제거 등 리팩토링 단계를 거친다.
    그리고 다시 1로 돌아간다. 실패하는 케이스를 발견하면 다시 반복한다.

이런 식으로 반복하다보면 테스트 케이스도 만들어지고 더 안정적인 코드를 만들 수 있게 된다.

profile
pepe

0개의 댓글