32장. TDD 마스터 하기 단계가 얼마나 커야 하나? 각 테스트가 다뤼야 할 범위는 얼마나 넓은가? 리팩토링을 하면서 얼마나 많은 중간 단계를 거쳐야 하는가? 리펙토링 초기에는 작은 단위 부터 작업할 준비가 되어야 하며, 나중에는 단계를 뛰어 넘거나 툴을 사용해서 진행하라. 테스트할 필요가 없는 겂은 무엇인가? "두려움이 지루함으로 변할때까지 테스트를 만들어라" 아래 목록을 테스트 하도록 하자 조건문 반복문 연산자 다형성 좋은 테스트를 갖췄는지의 여부를 어떻게 알 수 있는가? 다음은 설계 문제가 있음을 알려주는 테스트의 속성이다. 긴 셋업 코드 : 하나의 단순한 단언을 수행하기 위해 수백 줄의 객체새성 코드가 필요하다면 뭔가 문제가 있는 거다. 객체가 너무 크다는 뜻이므로 나뉠 필요가 있다. 셋업 중복..
13장. 진짜로 만들기 카드 수수료(0.2) + 계좌 수수료(0.3) = 결제 금액 (복합결제가 가능 50대 50 으로만 결제 가능) 카드 수수료(0.2) + 카드 수수료(0.3) 모든 중복을 제거 하기 전까지는 카드 수수료(0.2) + 카드 수수료(0.3) 테스트를 완료 표시 할 수 없다. 코드는 중복코드는 없지만, 가짜 구현에 있는 아래 코드를 구현해 보자. public Payment reduce(Expression source, String to) { return Payment.card(0.25); } 우선, 두 Payment 의 합은, RepresentPayment(대표지불수단) 이어야 한다. @Test public void testAddReturnsRepresentPayment() { Payme..
오늘은 10,11,12 장 내용을 다루어 보자! 10장. 흥미로운 발급 책에서는 또 비유적으로 시간이라는 은유를 썻는데 나는 있는 그대로(?) 작성 하였다. 카드 수수료 (20%) 카드번호, 유효기간, 결제 금액 값 필요 card 부작용? + 수수료비율 필드 추가 + 수수료금액 필드 추가 + getChargeAmt 추가 equals() hashCode() chageAmt private 하게 만들기 계좌 수수료 (30%) 카드, 계좌 중복 공용 equals 공용 newIssuance Card와 Account 비교 하기 newIssuance 신규 발급 추가 사용가능 국가 공용 newIssuance 로 중복 코드를 줄이자. Payment newIssuance(double chargeRate) { if (get..
7장. 사과와 오렌지 요구사항 카드 수수료 (20%) 카드번호, 유효기간, 결제 금액 값 필요 card 부작용? + 수수료비율 필드 추가 + 수수료금액 필드 추가 + getChargeAmt 추가 equals() hashCode() chageAmt private 하게 만들기 계좌 수수료 (30%) 카드, 계좌 중복 공용 equals 공용 getChargeAmt Card와 Account 비교 하기 이장에서는 Card, Account 를 비교해 보도록 하자. 기존 테스트 코드에 Card 와 Account 를 비교하는 코드를 넣어보자 @Test void equalsTest() { assertTrue(new Card(0.2).equals(new Card(0.2))); assertFalse(new Card(0.2)..
임시 저장 했던게... 다 날아 갔다 ㅠ.ㅜ... 다시 요약 하면 4장 에서는 객체 변수에 직접 접근을 위해 변수를 private 하게 변경 하였고, 5장 에서는 Account(계좌)를 새롭게 만들었다, 현재 요구 사항은 아래와 같다. 요구사항 카드 수수료 (20%) 카드번호, 유효기간, 결제 금액 값 필요 card 부작용? + 수수료비율 필드 추가 + 수수료금액 필드 추가 + getChargeAmt 추가 equals() hashCode() chageAmt private 하게 만들기 계좌 수수료 (30%) 카드, 계좌 중복 공용 equals 공용 getChargeAmt 6장 돌아온 '모두를 위한 평등' 5장에 계좌를 만들면서 카드를 복붙하였기 때문에 (빠른 테스트 성공을 보기 위함이다...!) 우리는 엄..
오늘 부터는, 테스트 주도 개발(켄트백)에서 예제로 쓰고 있는, Dallor 예시를 Paymt(결제)로 투영하여 테스트 코드 작성 훈련을 진행 하도록 하겠다. 1장. 결제의 종류 (카드) 요구사항 카드 수수료 (20%) 카드번호, 유효기간, 결제 금액 값 필요 card 부작용? + 수수료비율 필드 추가 + 수수료금액 필드 추가 + getChargeAmt 추가 CardTest @Test void CardChargeTest() { Card card = new Card(0.2); card.getChargeAmt(1000); assertEquals(card.chargeAmt, 200); } 테스트 코드 부터 작성 하고... 초록 막대기가 보이게(테스트 성공) 하게 바꾸자. Card package com.exam..
TDD 개발 방법론 학습을 위한 포스팅이다. 켄트백 저자의 테스트 주도 개발 내용을 참고하여 작성 할 것이며, 해당 내용은 1장 다중 통화를 지원하는 Money 객체, 2장 타락한 객체, 3장 모두를 위한 평등에 대한 실습 내용을 주로 담을 것이다. 1장 다중 통화를 지원하는 Money 객체 새로운 보고서 작성을 위한 환율 개선 요구 사항 1. $5 + 10CHF = $10(환율이 2:1일 경우) 2. $5 X 2 = $10 작업이 끝나면 취소선 표시 하도록 한다. 1. 테스트 코드 부터 작성 package com.example.demo; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTes..
TDD 수련법 무술 수행 단계 : 수파리 수 1. 간단한고 쉬운 문제들을 TDD로 시도 합니다. 가능하면 전에 접하고, 프로그래밍해본 문제가 좋습니다. 2. 초록 막대 주기는 가능하면 짦도록 합니다. 예를 들어서 a=b+3xc 를 입력하고자 할 때, a=까지 입력한 시점은 빨간 막대 시점입니다. 그 시점에서 테스트를 실행하면 분명히 실패(정확히는 에러가)할 것이기 때문입니다. 가능한 빨리 초록 막대가 나오도록 해야 합니다. 3. 이때 초록 막대 주기의 최대 시간을 정해놀고 진행하다가 시간을 초과하면 직전 초록 막대 상태로 돌린 다음(그 동안의 코드는 포기하고) 새로 시작하는 것이 좋습니다. 4. '진짜로 만들기 전까지만 가짜로 구현하기'를 적극적으로 사용하려고 노력합니다. 가짜로 구현하기는 초록 막대 주..
- Total
- Today
- Yesterday
- 분산처리
- Python
- data mining
- 테스트
- fastapi
- MQ
- 테스트 주도 개발
- 켄트 백
- EC2
- 퀜트백
- SpringBoot
- AWS
- 테스트주도개발
- 웹서비스
- MSA
- mongodb
- Python #FastAPI
- 웹개발
- TDD
- kafka
- nodejs
- data crawling
- GateWayApi
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |