본문 바로가기

테스트3

볼링게임 TDD [3] 볼링게임 TDD[3] 을 끝으로 볼링게임 TDD를 마무리하려고 한다. 우선 남은 할 일 목록을 정리해보자. [] 볼링 점수 계산기를 만든다. (스트라이크, 스페어를 고려한다.) [] 투구(pitch) 후 쓰러진 pin은 BowlingScore에 전달되어야 한다. [] 볼링을 상속받는 객체로는 볼링 플레이어와 볼링 점수 계산기가 존재한다. (플레이어와 점수 계산기는 1 : 1 관계를 갖는다.) [] 점수 계산기를 통해 계산된 점수는 점수 표출기를 통해 점수를 볼 수 있어야 한다. 잘 못된 할 일 목록과 불 필요한 목록은 정리하고 볼링게임을 완성하기 위한 할 일 만 남겨두도록 하겠다. [] 스트라이크, 스페어등 볼링 룰을 적용한다. [] 점수 계산기를 통해 최종 점수를 계산해야 한다. [] 최종 점수는 점수.. 2020. 10. 3.
[OKKYCON: 2018] 이규원 - 당신들의 TDD가 실패하는 이유 엔지니어링은 사이언스가 아니다. 프로그래머는 사이언스보단 엔지니어링에 훨씬 가깝다. 과학적 이론, 과학적 방법론을 가지고 정해진 시간, 정해진 인력, 정해진 자금 안에서 해결해야 한다. TDD 실패하는 사람들의 테스트 구현 테스트를 한다. 테스트들이 내부 코드들을 알고 있다. Mock을 많이 사용한다. Mock은 대부분 스텁이나 스파이를 위해 쓰는데 간접적이다. 우리가 제어할 수 없는 것 현실 세계 인프라 외부 서비스 레거시 우리가 보호해야 하는 것 AWS Spring Domain TDD 성공을 위한 방법 목적 소프트웨어 사용자에게 어떤 가치를 전달할 것인가? 명확한 정의가 중요하다. 분석 목적을 달성하기 위해 소프트웨어에 어떤 변경이 필요한가? 설계 낮은 결합 높은 응집 도메인 모델 보호 프로세스 : .. 2020. 9. 26.
테스트 주도 개발 [1 - 9장] TDD의 목적은 작동하는 깔끔한 코드를 얻는 것이다. 작동하는 깔끔한 코드를 얻는 것은 때로는 최고의 프로그래머들 조차 도달하기 힘든 목표고, 나같은 대부분의 평벙함 프로그래머들에게는 거의 불가능한 일이다. 그렇다면 나누어서 정복하자. 일단 '작동하는 깔끔한 코드'를 얻어야 한다는 전체 문제 중에서 '작동하는' 에 해당하는 부분을 먼저 해결한다. 그러고 나서 '깔끔한 코드' 부분을 해결하는 것이다. 요구사항 통화가 다른 두 금액을 더해서 주어진 환율에 맞게 변한 금액을 결과로 얻을 수 있어야 한다. 어떤 금액을 어떤 수에 곱한 금액을 결과로 얻을 수 있어야 한다. 할 일 목록 $5 + 10CHF = $10(환율이 2:1일 경우) $5 x 2 = $10 Dollar 부작용(side effect?) ... .. 2020. 9. 5.