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

来源:互联网 发布:linux 打开21端口 编辑:程序博客网 时间:2024/05/21 11:13
(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)))

原创粉丝点击