231030 TIL - TDD

jkeum·2023년 10월 30일
0

TECHIT-BackendSchool

목록 보기
5/50
post-thumbnail

TDD란?

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() 데코레이터에 어떤 것을 테스트하는지 적어주면 됨

테스트 단계

  • Red : 실패하는 테스트를 만든다. 그 테스트가 통과하게 만들기(목표를 세우고)
  • Green : 어떻게든 테스트케이스를 통과하게 만듦(목표를 실현하고)
  • Refactoring : 중복 제거(정리하기)

각 단계에서는 테스트케이스를 새로 추가하기도 하고, 기존 테스트케이스를 수정해서 사용하기도 함.

Green에서 잘 구현하려고 하기보다는 어떻게든 꼼수를 부려서라도 테스트를 통과하게끔.

assertThat(rs).isEqualTo(20); -> rs가 20과 같다고 단언함. 만약 같지 않으면 에러
assertj-core 라이브러리는 assertThat 함수를 쓸 수 있게 해줌. 필수는 아니지만 테스트케이스 작성할 때 도움이 됨.

profile
It's me, jkeum!

0개의 댓글