WIT – NTS UIT Blog

도전! JavaScript TDD – 3. 점진적 명세 작성

Posted by in Research

이전 시간에는 자판기에 재고 기능을 추가하면서 “TDD 리듬”에 대해서 이야기를 했다. 지금까지 만든 테스트 코드는 아래와 같다.

  테스트 대상이 되는 모델 코드는 다음과 같았다.

  오랜만에 코드를 보니 좀 낯설기는 하지만, 다행히 라인이 길지 않아서 금방 눈에 들어온다. 이번에는 특별히 불만 있는 부분이 없으므로 별 설명없이 그냥 진행해야겠다. 동전 투입 오늘 만들어야 할 것이 무엇인지 이전 시간에 남겨둔 할 일 목록을 한 번 살펴보자. 음료를 뽑을 수 있다. 콜라, 사이다, 오렌지 주스, 사과 주스 중 원하는 음료를 뽑을 수 있다. 동전을 넣을 수 있다. 지폐를 넣을 수…read more

7

도전! JavaScript TDD – 2. TDD 리듬

Posted by in Research

우선 이야기를 시작하기에 앞서, 이전에 작성했던 코드를 다시 한 번 살펴보자. 아래는 모델 코드다. 모델 코드는 테스트 코드에 대응하는 실제 구현 코드를 말한다.

  그리고 다음은 테스트 코드다.

  전에는 잘 몰랐는데 오늘은 테스트 코드의 몇 군데가 마음에 들지 않는다. 어제 마음 다르고, 오늘 마음 다르고. 사람이란 그런 존재다. 첫 번째 테스트 케이스의 명세 중 “여러 종류의 음료”라는 문구가 불명확한 것 같다. 그리고 두 번째 테스트 케이스는 더 어색하게 느껴진다. 테스트 명세는 “콜라, 사이다, 오렌지 주스, 사과 주스만 뽑을 수 있다”인데, 테스트 코드가 이를 잘 표현하지 못하는 것…read more

4

도전! JavaScript TDD – 1. 시작

Posted by in Research

얼마 전에 끝난 프로젝트를 통해서, 느낀 점 하나가 테스트 코드의 필요성이다. 솔직하게 말하자면 단위 테스트를 하나도 작성하지 않았다. 프로토타이핑이나 해 볼 생각이었는데 일정(물리적 일정보다는 심리적 일정에 더 가까웠음)에 쫓겨서 이 코드가 바로 제품이 되어버리는 바람에 그랬어요 라고 말하고 싶지만, 어디까지나 나의 게으름이 가장 큰 이유다. 바빠 죽겠는데 무슨 테스트냐 싶었다. 언제나 그렇듯이 테스트 코드를 작성하지 않은 대가는 아주 비쌌다. 성능 상에 문제가 있어서 리팩토링을 해야하는데 코드를 한 번 손대면 여기저기서 사이드 이펙트가 터졌다. 게다가 사용하지 않는 불필요한 코드가 남아있어서 지우고 싶어도 사이드 이펙트 날까 불안해서 쉽게 손대지 못했다. 어쩌다가 한…read more

0