Hi folks,
I finally came up with fixtures for clojure.contrib.test-is. Now you
can do before/after setup for each test case. Here's the
documentation, let me know what you think.
-Stuart Sierra
;; FIXTURES (new)
;;
;; Fixtures allow you to run code before and after tests, to set up
;; the context in which tests should be run.
;;
;; A fixture is just a function that calls another function passed
as
;; an argument. It looks like this:
(defn my-fixture [f]
;; Perform setup, establish bindings, whatever.
(f) ;; Then call the function we were passed.
;; Tear-down / clean-up code here.
)
;; Fixtures are attached to namespaces in one of two ways. "each"
;; fixtures are run repeatedly, once for each test function created
;; with "deftest" or "with-test". "each" fixtures are useful for
;; establishing a consistent before/after state for each test, like
;; clearing out database tables.
;;
;; "each" fixtures can be attached to the current namespace like
this:
(use-fixtures :each fixture1 fixture2 ...)
;; The fixture1, fixture2 are just functions like the example above.
;; They can also be anonymous functions, like this:
(use-fixtures :each (fn [f] setup... (f) cleanup...))
;;
;; The other kind of fixture, a "once" fixture, is only run once,
;; around ALL the tests in the namespace. "once" fixtures are
useful
;; for tasks that only need to be performed once, like establishing
;; database connections, or for time-consuming tasks.
;;
;; Attach "once" fixtures to the current namespace like this:
(use-fixtures :once fixture1 fixture2 ...)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---