FIZZBUZZのテストを書き直し
(ns test.fizzbuzz (:use clojure.test)) (defn whole-numbers [] (iterate inc 1)) (defn fizzbuzz [num] (cond (= (rem num 15) 0) "FIZZBUZZ" (= (rem num 3) 0) "FIZZ" (= (rem num 5) 0) "BUZZ" :else (str num))) (deftest fizzbuzz-test (are [expected in] (= expected (fizzbuzz in)) ; expected in "1" 1 "FIZZ" 3 "4" 4 "BUZZ" 5 "FIZZ" 6 "FIZZ" 9 "BUZZ" 10 "FIZZBUZZ" 15 "29" 29 "FIZZBUZZ" 30 ))
are という文法を知った。前より簡潔になった気がする。
Data Driven Testを、JUnit でも RSpecでも簡潔かつ解りやすく書きたいんだが、未だにわかってない。