콘텐츠로 이동

2021 02 22

2021-02-22

Why TDD?

  • 과정 1. 테스트 작성 2. 테스트를 통과하는 가장 간단한 코드 작성 3. 리팩터링
  • 장점 - 응집도가 높고, 결합도가 낮은 클래스로 구성된 시스템 개발 - 책임을 수행할 객체 선정 - 클라이언트가 기대하는 객체의 요구와 응답을 검토할 수 있음 - 객체가 어떤 다른 객체와 협력할 것인지를 집증
  • 테스트를 작성하기 위해 객체의 메서드를 호출하고, 반환값을 검증하는 것은, 순간적으로 객체가 수행하는 책임/역할에 관해 생각한 것

refactoring 하면서 생긴 질문

  • 결과에 대한 계산... controller가 해야하나 model이 해야하나? - model에서 하는게 맞는거 같다.. 엄연히 비즈니스 로직이자너
  • enum에 대한 테스트? - 로직이 없고 싱글톤으로 구성된 그저 상수의 나열이라면 굳이?
  • 좋은 네이밍? - GameMoney 클래스 -> numberOfLottoToBuy - LottoBall / LottoGenerator -> 데이터 구조상 1이 더 있어야 한다. 이를 표현하는 좋은 네이밍? 패딩?
  • UnmodifiableList는 만능? - 좀 뜯어볼 필요성이 있는듯 - 우선 불변객체라니까 써보자