sm 기술 블로그
TDD 본문
TDD
테스트를 진행하면서 코딩을 하는 방식
pom.xml 에 아래 문구를 추가한다.
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
TDD 방법
- 실패하는 테스트를 만든다.
// src/test/java/com/exam/exam1/AppTest.java
package com.exam.exam1;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class AppTest {
@Test
public void 더하기() {
Calc calc = new Calc();
calc.setNo1(1);
calc.setNo2(2);
int rs = calc.calcPlus();
assertEquals(rs, 3);
}
}
위에 것을 실행하면 실패함 => Calc 클래스가 아직 선언 안되서
ctrl + 1로 바로 만들 수 있음.
import org.junit.jupiter.api.Test; : @Test를 사용하기 위해서 필요
// : 사람이 읽는 주석
@ : 컴퓨터가 읽는 주석
import static org.junit.jupiter.api.Assertions.assertEquals; : assertEquals를 사용하기 위해서 필요
assertEquals(A,B) : 결과로 나온 A 값이 개발자가 생각한 B로 나오는지 확인하는 것이다.
- 꼼수를 써서 테스트를 통과하게 만든다.
// src/main/java/com/exam/exam1/Calc.java
package com.exam.exam1;
public class Calc {
public void setNo1(int no) {
}
public void setNo2(int no) {
}
public int calcPlus() {
return 3;
}
}
일단 return 3으로 테스트는 통과되었다.
- 정리한다.
// src/main/java/com/exam/exam1/Calc.java
package com.exam.exam1;
public class Calc {
int no1;
int no2;
public void setNo1(int no) {
no1 = no;
}
public void setNo2(int no) {
no2 = no;
}
public int calcPlus() {
return no1+no2;
}
}
Comments