TDD 란?
먼저 테스트를 하고 그다음에 구현하는 방식.
테스트를 먼저 작성하고 테스트에 실패하면
테스트를 통과 시킬 만큼 코드를 추가하는 과정을 반복하면서
점진적으로 기능을 완성해 나가는 방식을 추구한다.
TDD 기본흐름 예시
덧셈 기능을 검증하기 위한 테스트
CalculatorTest.java
package chap02;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class CalculatorTest {
@Test
void plus() {
int result = Calculator.plus(1, 2);
assertEquals(3, result);
}
}
step 1 ) 클래스 생성하고 0을 리턴하는 plus() 메서드를 추가
Calculator.java
package chap02;
public class Calculator {
public static int plus(int a1, int a2) {
return 0;
}
}
→ CalculatorTest.java 실행 → return 값이 0 이여서 테스트 실패
step 2 ) 테스트를 통과하기 위해 3 을 return
Calculator.java
package chap02;
public class Calculator {
public static int plus(int a1, int a2) {
return 3;
}
}
→ CalculatorTest.java 실행 → 테스트 성공
step 3) 추가 검증코드를 추가
CalculatorTest.java
package chap02;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class CalculatorTest {
@Test
void plus() {
int result = Calculator.plus(1, 2);
assertEquals(3, result);
assertEquals(5, Calculator.plus(4, 1));
}
}
Calculator.java
package chap02;
public class Calculator {
public static int plus(int a1, int a2) {
return a1 + a2;
}
}
→ CalculatorTest.java 실행 → 테스트 성공
'TDD > 테스트 주도 개발 시작하기' 카테고리의 다른 글
[ TDD ][책] 4장 TDD 기능명세 설계 (0) | 2024.10.11 |
---|---|
[TDD][책] 10. 테스트 코드와 유지보수 : 좋은 테스트 코드 란? (0) | 2024.10.10 |
[ TDD ] [책] 테스트 코드 작성 순서 (0) | 2024.10.03 |
[ TDD ] [책] TDD 시작 : 암호 검사기 (예시) (0) | 2024.09.28 |
[ TDD ] JUnit5 - 인텔리J에서 JUnit 설정 (0) | 2024.09.26 |