-
간단한 데이타베이스를 TDD 로 개발하기 2회: make-cdProgrammer/Programming 2014. 3. 19. 09:57
이번에는 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))
'Programmer > Programming' 카테고리의 다른 글
간단한 데이타베이스를 TDD 로 개발하기 소스 코드 (0) 2014.03.19 간단한 데이타베이스를 TDD 로 개발하기 3회: add-record (0) 2014.03.19 간단한 데이타베이스를 TDD 로 개발하기 1회: dump-db (0) 2014.03.19 현상을 분석하여 문제의 원인을 찾아내라 (1) 2013.11.12 간결하고 효율적인 프로그래밍 (1) 2013.07.22 댓글