Practice/Lisp, Scala

간단한 데이타베이스를 TDD 로 개발하기 2회: make-cd

이번에는 CD의 레코드를 만드는 함수를 만들어보자. 함수의 이름은 make-cd이며 인자로 제목, 아티스트, 순위, 리핑 여부를 전달한다.

(make-cd "Home" "Dixie Chicks" 9 t)

반환값은 이전 강의에서 언급한 속성 리스트를 출력한다.

(:title "Home" :artist "Dixie Chicks" :rating 9 :ripped t)

우리가 예상하는 동작을 토대로 테스트를 작성하자.

(define-test make-cd-test
  (assert-equal '(:title "Home"
                  :artist "Dixie Chicks"
                  :rating 9
                  :ripped t)
                (make-cd "Home" "Dixie Chicks" 9 t)))

우선 가장 단순한 방법으로 위 테스트를 통과시키자.

(defun make-cd (title artist rating ripped)
  '(:title "Home" :artist "Dixie Chicks" :rating 9 :ripped t))

다른 인자를 입력했을 경우에 어떠한지는 확인하기 위해서 테스트를 좀 더 확장해보자.

(define-test make-cd-test
  (assert-equal '(:title "Home"
                  :artist "Dixie Chicks"
                  :rating 9
                  :ripped t)
                (make-cd "Home" "Dixie Chicks" 9 t))
  (assert-equal '(:title "Roses"
                  :artist "Kathy Mattea"
                  :rating 7
                  :ripped t)
                (make-cd "Roses" "Kathy Mattea" 7 t)))

이 테스트를 통과하려면 제대로 된 make-cd 함수 구현이 필요하겠다. 리스트를 생성하는 LIST 함수를 사용하여 속성 리스르를 생성하도록 함수의 정의를 변경한다.

(defun make-cd (title artist rating ripped)
  (list :title title :artist artist :rating rating :ripped ripped))

알림

이 블로그는 구글에서 제공한 크롬에 최적화 되어있고, 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.

카운터

Today : 45
Yesterday : 73
Total : 226,942