TDD는 테스트 주도 개발을 의미함.
구현을 하고 테스트 한 다음에 배포를 하지 않고, 테스트를 먼저 하는 게 좋음.
따라서 테스트를 하는 프로그램을 개발함.
TDD는 test폴더에 작성하며,
main.java.com.ll.main
=> test.java.com.ll.main
똑같이 맞춰야 함
main
- com.ll.Main
- com.ll.Calc
test
- com.ll.CalcTest
TDD 방식은 테스트코드를 먼저 작성. 자동화된 테스트케이스를 만들어서 그걸로 테스트하는 것.
보통 JUNIT을 사용함. JUNIT이 테스트코드 짜는 것을 도와줌
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}
@Test 데코레이터
@DisplayName() 데코레이터에 어떤 것을 테스트하는지 적어주면 됨
테스트 단계
각 단계에서는 테스트케이스를 새로 추가하기도 하고, 기존 테스트케이스를 수정해서 사용하기도 함.
Green에서 잘 구현하려고 하기보다는 어떻게든 꼼수를 부려서라도 테스트를 통과하게끔.
assertThat(rs).isEqualTo(20);
-> rs가 20과 같다고 단언함. 만약 같지 않으면 에러
assertj-core 라이브러리는 assertThat 함수를 쓸 수 있게 해줌. 필수는 아니지만 테스트케이스 작성할 때 도움이 됨.