TDD
-
TDD[3]Spring 2021. 10. 8. 15:45
테스트 주도 개발의 패턴 테스트 주도 개발 패턴 테스트 한다는건 무엇을 뜻하는지? 언제 테스트를 해야 하는지? 테스트할 로직을 어떻게 고를지? 테스트할 데이터를 어떻게 고를지? 테스트란? 테스트할 시간이 어딨어. 그냥 릴리즈해 이 장면에 대해서는 결과를 보장할 수 없다. 스트레스를 점점 많이 받으면 결국 실패하게 된다. - 스트레스를 받으면 테스트를 실행한다. 테스트를 실행하면 스트레스를 받는다. - 이 부분의 경우 자동화된 테스트가 존재하다면 두려운 정도를 선택할 수 있다. (스트레스 또한 줄일 수 있게 된다.) 격리된 테스트 매일 아침 출근하면 지난밤 테스트 결과를 담은 종이더미가 놓여 있었다. 이 경험에서 두 가지의 교훈을 얻을 수 있었다. 테스트가 충분히 빨라서 내가 직접, 자주 실행할 수 있게끔..
-
TDD[2]Spring 2021. 10. 8. 15:45
XUnit 예시 XUnit은 직접 해보지 않고 책만 읽음 XUint 으로 가는 첫 걸음 정리 자기 과신에 차서 몇 번의 잘못된 출발을 한 후, 아주 자그마한 단계로 시작하는 법을 알아냈다. 일단 하드코딩을 한 다음에 상수를 변수로 대처하여 일반성을 이끌어 내는 방식으로 기능을 구현 플러거블 셀렉터를 사용했다. 플러거블 셀렉터는 정적 코드 분석을 어렵게 만들기 때문에 앞으로 최소 4개월 안에는 사용하지 않기로 약속 메서드 이름을 저장하여 해당하는 메서드를 동적으로 호출하는 방법 테스트 프레임워크를 작은 단계로만 부트스트랩했다. 테이블 차리기 테스트를 작성하면 공통된 패턴을 발견하게 된다. 3A 패턴 given - when - then 아닌가? 준비 (arrange) - 객체를 생성 행동 (act) - 어떤..
-
TDD[1]Spring 2021. 10. 8. 15:44
그냥 Spring에 저장함 Test - Driven Development : By Example TDD를 쫒아가려 하지 말고 TDD가 나를 쫒아오게 해라 TDD 수련법 처음 훈련 방법 간단하고 쉬운 문제들을 TDD로 시도합니다. 가능하면 전에 접하고, 프로그래밍해본 문제가 좋습니다. 초록 막대 주기는 가능하면 짧도록 합니다. ex) a=b+3Xc를 입력하고자 할 때, a= 까지 입력한 시점은 빨간 막대 시점입니다. 그 시점에서 테스트를 실행하면 분명히 실패할 것이기 때문입니다. 가능한 초록 막대가 나오도록 해야 합니다. 이때 초록 막대 주기의 최대 시간을 정해놓고 진행하다가 시간을 초과하면 직전 초록 막대 상태로 돌린다음 새로 시작하는 것이 좋습니다. 진짜로 만들기 전까지만 가짜로 구현하기를 적극적으로 ..