inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

<도서정리> 테스트 주도 개발 시작하기 - 최범균

highlrang
0

단계: 레드 - 그린 - 리팩토링

테스트 선 작성 후 테스트를 통과시킬 만큼의 코드를 작성한다.(기능을 구현한다)
마지막으로 리팩토링을 통해 코드를 다듬는다.
테스트를 통해 개발의 범위가 정해진다. 테스트가 진행될수록 검증하는 범위가 넓어지면서 기능 구현이 점점 완성되어간다.

TDD는 개발 과정에서 코드를 지속적으로 정리하므로 코드품질을 높이고 유지보수 비용을 낮춘다.
코드 수정 후 테스트가 진행되므로 향후 올바르지 않은 코드가 배포되는 것을 방지할 수 있다.

 

  1. 쉬운 경우(넓은 범위)에서 어려운 경우로 진행
  2. 예외적인 경우에서 정상인 경우로 진행

한 번에 많은 코드를 만들면, 그 사이 발생한 버그를 잡기 위해 많은 비용이 들어간다.

  1. 정해진 값 리턴
  2. 값 비교를 통해 정해진 값 리턴
  3. 다양한 경우 추가하면서 구현을 일반화

테스트를 먼저 작성하고 return 상수로 테스트 통과시킨 후에 비즈니스 로직 하나씩 추가하면서 테스트 매번 실행

 

Mockito
memoryRepository implements 리포지토리 인터페이스 - Map 사용하기
@TempDir

 

테스트할 기능을 생성하면서 클래스, 메서드, 파라미터 구성
결과 검증하면서 리턴값 구성
-> 테스트하면서 설계까지 진행됨
클래스, 메서드, 변수명은 주석보다 코드 이해에 효과적이게 구성하기

필요한만큼만 설계하기
예외적인 상황, 복잡한 상황은 최대한 많이 기획자와 상의하고 대비하는 것이 효율적이고 완성도 높은 개발을 이끌어냄

 

기능 개발을 다 끝낸 후에 리팩토링하기
또는 커밋 후에 리팩토링하기
리팩토링은 클래스 분리, 메서드 추출, or문, count 로직 등 이용...
파라미터 개수가 3개 이상이면 객체화하기

TDD test 최범균 junit 도서

답변 0