读书人

用clojure兑现《实用Common Lisp编程》

发布时间: 2013-03-06 16:20:31 作者: rapoo

用clojure实现《实用Common Lisp编程》中的单元测试框架

(ns simple-test-frame.core)(def ^:dynamic *test-name* nil)(defn report-result  [result form]  (if result    (println "pass ... " *test-name* ":" form)    (println "fail ... " *test-name* ":" form))  result)(defn  combine-results  [& forms]  (every? true? forms))(defmacro check  [& forms]  `(combine-results    ~@(for [form forms]      `(report-result ~form '~form))))(defmacro deftest  [fn-name fn-parameters & fn-body]  `(defn ~fn-name     ~fn-parameters     (binding [*test-name* '~fn-name]       ~@fn-body)))

读书人网 >编程

热点推荐