annotate src/clojure/test_clojure/test_fixtures.clj @ 10:ef7dbbd6452c

added clojure source goodness
author Robert McIntyre <rlm@mit.edu>
date Sat, 21 Aug 2010 06:25:44 -0400
parents
children
rev   line source
rlm@10 1 ; Copyright (c) Rich Hickey. All rights reserved.
rlm@10 2 ; The use and distribution terms for this software are covered by the
rlm@10 3 ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
rlm@10 4 ; which can be found in the file epl-v10.html at the root of this distribution.
rlm@10 5 ; By using this software in any fashion, you are agreeing to be bound by
rlm@10 6 ; the terms of this license.
rlm@10 7 ; You must not remove this notice, or any other, from this software.
rlm@10 8 ;
rlm@10 9 ;;; test_fixtures.clj: unit tests for fixtures in test.clj
rlm@10 10
rlm@10 11 ;; by Stuart Sierra
rlm@10 12 ;; March 28, 2009
rlm@10 13
rlm@10 14 (ns clojure.test-clojure.test-fixtures
rlm@10 15 (:use clojure.test))
rlm@10 16
rlm@10 17 (declare *a* *b* *c* *d*)
rlm@10 18
rlm@10 19 (def *n* 0)
rlm@10 20
rlm@10 21 (defn fixture-a [f]
rlm@10 22 (binding [*a* 3] (f)))
rlm@10 23
rlm@10 24 (defn fixture-b [f]
rlm@10 25 (binding [*b* 5] (f)))
rlm@10 26
rlm@10 27 (defn fixture-c [f]
rlm@10 28 (binding [*c* 7] (f)))
rlm@10 29
rlm@10 30 (defn fixture-d [f]
rlm@10 31 (binding [*d* 11] (f)))
rlm@10 32
rlm@10 33 (defn inc-n-fixture [f]
rlm@10 34 (binding [*n* (inc *n*)] (f)))
rlm@10 35
rlm@10 36 (use-fixtures :once fixture-a fixture-b)
rlm@10 37
rlm@10 38 (use-fixtures :each fixture-c fixture-d inc-n-fixture)
rlm@10 39 (use-fixtures :each fixture-c fixture-d inc-n-fixture)
rlm@10 40
rlm@10 41 (deftest can-use-once-fixtures
rlm@10 42 (is (= 3 *a*))
rlm@10 43 (is (= 5 *b*)))
rlm@10 44
rlm@10 45 (deftest can-use-each-fixtures
rlm@10 46 (is (= 7 *c*))
rlm@10 47 (is (= 11 *d*)))
rlm@10 48
rlm@10 49 (deftest use-fixtures-replaces
rlm@10 50 (is (= *n* 1)))