TDD는 Design Acitivity이다.
1~2년 전 쯤 존경하는 개발자 분과 함께 A Brief History of Mock Objects라는 아티클을 함께 본 적이 있다.개인적으로 이렇게 특정 개념의 근본이 된다던지, 해당 분야의 대가들이 쓴 아티클들을 함께 보는 것으로 인해 굉장히 많은 인사이트들이 생겼던 것 같다. 객체의 테스트 때문에 추가했던 gette…
카테고리
1~2년 전 쯤 존경하는 개발자 분과 함께 A Brief History of Mock Objects라는 아티클을 함께 본 적이 있다.개인적으로 이렇게 특정 개념의 근본이 된다던지, 해당 분야의 대가들이 쓴 아티클들을 함께 보는 것으로 인해 굉장히 많은 인사이트들이 생겼던 것 같다. 객체의 테스트 때문에 추가했던 gette…
TDD By Example 책을 보다가 감명 받은 부분을 정리해봤다. 기본적으로 아래 4가지 원칙을 따라 진행한다.
TDD By Example 책을 보다가 감명 받은 부분을 정리해봤다. 기본적으로 아래 4가지 원칙을 따라 진행한다.
TDD By Example 책을 보다가 감명 받은 부분을 정리해봤다. 기본적으로 아래 4가지 원칙을 따라 진행한다.
가끔 현재 시간을 기준으로 코드를 짜야할 때가 있다.이런 경우에 자바의 경우에는 LocalDate, LocalTime, LocalDateTime 등등의 클래스에 있는 static 메서드인 now 메서드로 현재 시간을 구한다.아래와 같이 말이다.
v1에는 재사용 가능한 코드가 있음에도 불구하고 미묘(?)한 차이 때문에 계속 각국의 타이어를 장착한 자동차 클래스를 만들어야하는 단점이 있었다.이는 자동차를 만들 때 이미 타이어를 만드는 방법이 결정되어 있기 때문에 발생하는 문제이다.(**자동차(전체)**가 **타이어(부분)**에 의존하고 있는 코드)즉, 자동차를 만들…
v2에는 자동차를 생산할 때 어떤 타이어를 만들지 정할 수 있고 새로운 타이어로 교체도 가능했다.하지만 올바른 값이 들어왔는지 유효성 검사할 방법이 없다.사실 변경할 수는 있지만 안전하지 않고 그닥 권장하는 방법이 아니다.
이 글은 의존성 주입을 전혀 적용하지 않은, 의존성 주입이 뭔지 모르는 상태로 짠 코드이다.우선 문제점을 먼저 파악해봐야 뭐가 되지 않을까 싶어서 막코딩을 해봤다고 가정해보자.우선 미국산 타이어가 장착된 자동차, 한국산 타이어가 장착된 자동차를 만들어야한다고 생각해보자.그럼 우선 미국산, 한국산 타이어 클래스 두 개가 필…