일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 만들면서배우는클린아키텍처
- 클린아키텍처
- 이펙티브코틀린
- 조영호
- 테스트
- GrokkingFunctionalProgramming
- 추상화 설계
- 계층형아키텍처
- 테스트주도개발
- Java
- 헥사고날아키텍처
- 객체지향의사실과오해
- TDD
- 함수형프로그래밍
- 아키텍처
- 개발서적
- Boot Legacy 차이점
- FP
- DDD
- Kotlin
- web
- 개발방법론
- 코틀린
- 스터디
- template
- Spring
- 책스터디
- Thymeleaf
- 도메인 주도 개발 시작하기
- 유지보수
- Today
- Total
목록스터디 (47)
김동형수 개발기
21장 셈하기 테스트 메서드 호출하기 먼저 setUp 호출하기 나중에 tearDown 호출하기 테스트 메서드가 실패하더라도 tearDown 호출하기 여러 개의 테스트 실행하기 수집된 결과를 출력하기 WasRun에 로그 문자열 남기기 tearDown 메서드는 예외의 유무와 관계없이 실행이 되어야한다. 일반적으로 테스트의 순서는 중요하다. 테스트 하나가 성공하고 그 뒤 테스트가 문제가 생기다면 두 단계 뒤로 물러서는 것을 고려한다. 모든 테스트가 성공하던 매 시점을 일종의 체크 포인트로 하여 임의로 되돌릴 수 있도록 프로그래밍 환경이 지원한다면 아주 좋을 것이다. ( 테스트 버저닝? 에 대한 형상관리를 이야기 하는듯함 ) 모든 테스트 케이스에 대해서 자동보고 되는 기능은 첫 번째 테스트 케이스로서 무리다. ..
20장 뒷정리하기 테스트 메서드 호출하기 먼저 setUp 호출하기 나중에 tearDown 호출하기 테스트 메서드가 실패하더라도 tearDown 호출하기 여러 개의 테스트 실행하기 수집된 결과를 출력하기 tearDown() 메서드는 외부에서 주입받은 자원을 테스트에 이용한 뒤 반환하는 목적의 메서드이다. 메서드 호출 순서를 확인하기 위해 로깅 작업을 추가한다. 테스트 메서드 호출하기 먼저 setUp 호출하기 나중에 tearDown 호출하기 테스트 메서드가 실패하더라도 tearDown 호출하기 여러 개의 테스트 실행하기 수집된 결과를 출력하기 WasRun에 로그 문자열 남기기 setUp, testMethod 에 각각 log 변수에 append하는 기능을 추가했다. assert에서 setUp -> testMe..
19장 테이블 차리기 빌 웨이크의 3A 패턴 준비 (arrange) - 객체를 생성한다. 행동 (act) - 어떤 자극을 준다. 확인 (assert) - 결과를 검사한다. 테스트 메서드 호출하기 먼저 setUp 호출하기 나중에 tearDown 호출하기 테스트 메서드가 실패하더라도 tearDown 호출하기 여러 개의 테스트 실행하기 수집된 결과를 출력하기 3A 중 두 번째 세 번째는 항상 다르지만 준비 단계는 여러 테스트 걸쳐 동일한 경우가 종종 있다. 이런 패턴이 반복된다면 새로운 객체 생성에 대한 문제에 직면하게 된다. 성능 - 객체 하나만 생성해서 모든 테스트가 이 객체를 쓰게 할 수 있을 것이다. 격리 - 공유된 객체가 다른 테스트에 영향을 끼칠 수 있다. 테스트 커플링을 만들지 말 것. 테스트 메..
2부 xUnit 예시 xUnit 아키텍처는 파이썬에서 매끄럽게 도출되기 때문에 자바에서 파이썬으로 언어를 바꾼다. 2부가 끝나면 파이썬에 대해 개론적으로 이해하고, 자신만의 테스트 프레임워크를 작성할 수 있고 좀 더 교묘한 TDD의 예를 알게 될 것이다. 18장 xUnit으로 가는 첫 걸음 테스트 메서드 호출하기 먼저 setUp 호출하기 나중에 tearDown 호출하기 테스트 메서드가 실패하더라도 tearDown 호출하기 여러 개의 테스트 실행하기 수집된 결과를 출력하기 첫 번째 원시 테스트에는 테스트 메서드가 호출되면 true, 그렇지 않으면 false를 반환하는 프로그램이 필요하다. 클래스 이름과 플래그 명은 각각 WasRun, wasRun 으로 한다. 테스트 코드를 작성하고 실행이 되게끔 WasRu..
10장 흥미로운 시간 할일목록 $5 + 10CHF = $10(환율이 2:1일 경우) $5 X 2 = $10 amount를 private로 만들기 Dollar 부작용? Money 반올림? equals() hashCode() Equal null Equal object 5CHF X 2 = 10CHF Dollar / Franc 중복 공용 equals 공용 times Franc와 Dollar 비교하기 통화? testFrancMultiplication을 지워야 할까? Dollar와 Franc 클래스를 제거하기 위한 명백한 방법이 없다. times에서 팩토리 메서드를 호출했지만, 팩토리 메서드의 내용을 인라인 시킨다. 깔끔한 코드와 코드가 잘 동작할 거라는 믿음을 줄 수 있는 테스트 코드들이 있다. 고민을 하기 보다..
9장 우리가 사는 시간 할일목록 $5 + 10CHF = $10(환율이 2:1일 경우) $5 X 2 = $10 amount를 private로 만들기 Dollar 부작용? Money 반올림? equals() hashCode() Equal null Equal object 5CHF X 2 = 10CHF Dollar / Franc 중복 공용 equals 공용 times Franc와 Dollar 비교하기 통화? testFrancMultiplication을 지워야 할까? 통화 개념 테스트 및 구현 경량 팩토리를 사용할 수 있다. 하지만 당분간은 대신 문자열을 사용한다. Dollar, Franc 동일한 구현 후 공통 상위 클래스에 관련 내용을 push up 한다. 통화를 인스턴스 변수에 저장하길 원한다. 두 curre..
16장 드디어 추상화 할일목록 $5 + 10CHF = $10(환율이 2:1일 경우) $5 + $5 = $10 $5 + $5에서 Money 반환하기 Bank.reduce(Money) Money에 대한 통화 변환을 수행하는 Reduce Reduce(Bank, String) Sum.plus Expression.times Expression.plus를 끝마치려면 Sum.plus를 구현해야한다. 그리고 Expression.times를 구현하면 전체 예제가 끝난다. Sum.plus에 대한 테스트이다. fiveBucks, tenFrancs를 더해서 Sum을 생성할 수도 있지만 위의 코드에서는 명시적으로 Sum을 생성하는데, 이게 더 직접적으로 우리 의도를 드러낸다. 할일목록 $5 + 10CHF = $10(환율이 2:..
15장 서로 다른 통화 더하기 할일목록 $5 + 10CHF = $10(환율이 2:1일 경우) $5 + $5 = $10 $5 + $5에서 Money 반환하기 Bank.reduce(Money) Money에 대한 통화 변환을 수행하는 Reduce Reduce(Bank, String) $5 + 10CHF에 대한 테스트 추가 원하는 테스트지만 컴파일 에러가 난다. 컴파일 에러는 해결 되었지만 테스트는 15USD가 나오기 때문에 실패한다. Sum.reduce()가 인자를 축약하지 않는 것 같다. 그래서 인자를 모두 reduce하면 테스트는 통과한다. 이제 피가산수와 가산수는 Money -> Expression로 변경할 수 있다. Money에서 plus, time에서 Money 타입을 Expression로 변경하면서..