On Sat, Dec 4, 2010 at 7:34 PM, Barry Dahlberg <barry.dahlb...@gmail.com> wrote: > Hi Clojurians, > > I have a macro which creates a function for me and I would like to add > some unit tests using clojure.test. How can I create a temporary scope > so that any functions defined during the test are undefined > afterwards? Here is a trivial example to illustrate: > > (deftest my-def-macro-test > (my-def-macro foo "bar") > (if (= (foo) "bar")))
Ordinarily, if you want to define temporary functions you can just (let [x (fn [args] fnbody)] (do stuff with x)) (x undefined again here) However, if your macro outputs a defn that won't work. You may want to modify the macro to output just a (fn ...) form, and use (def x (the-macro args & body)) to get global functions and (let [x (the-macro args & body)] (do stuff with x)) to get local ones. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en