TDD와 단위테스트

Y39·2023년 3월 8일
0

toBeProgrammer

목록 보기
26/88

movie

TDD란?

  • 테스트 먼저 개발은 그 다음
  • 설계 > 테트스 > 코딩
  • tdd 과정
    -red: 테스트 실패
    • blue: 성공하도록
    • green: 리팩토릭
  • 장점
    • 자연스럽게 테스트커버리지가 높아진다.
    • 오버엔지니어링 방지
      • 내가 필요한 만큼만 딱 개발
    • 설계에 대한 피드백이 빠르다.
      • 테스트를 통해 피드백이 가능하므로
      • 어렵게 짤 수록 테스트가 어려워지기 때문에 쉽게 알 수 있음

TDD는 설계 방식인가?

  • 설계 방법론이라고 하기는 어렵다.
  • 전적으로 설계를 TDD에만 맡기면 테스트에만 좋은 프로그램이 만들어짐

TDD를 실패하는 사람들의 특징

  • 인터페이스가 아니라 인스턴스를 테스트
  • 위 때문에 테스트 케이스와 인스턴스 간의 결합력이 높아짐
  • 테스트나 인스턴스를 리팩토링하면 둘 중 하나는 계속 깨짐

단위테스트의 장점

  • 문제점의 발견이 쉬움
  • 변경이 쉬움
  • 품질 향상
  • 코드의 문서화가 가능

좋은 단위테스트의 법칙(FIRST)

  1. Fast빠르다.
  2. Independent독립적
  3. Repeatable반복 가능
  4. Self-Vaildating자가 검증
  5. Timely적시에
  • 실제 코드의 구현 이전에
profile
System.out.print("Bold")

0개의 댓글