あなたは、テストの自由に定義されたグループのセットアップとティアダウンのコードを提供するために、use-fixtures
を使用することはできませんが、各名前空間のセットアップとティアダウンのコードを提供するために、:once
を使用することができます。
;; my/test/config.clj
(ns my.test.config)
(defn wrap-setup
[f]
(println "wrapping setup")
;; note that you generally want to run teardown-tests in a try ...
;; finally construct, but this is just an example
(setup-test)
(f)
(teardown-test))
;; my/package_test.clj
(ns my.package-test
(:use clojure.test
my.test.config))
(use-fixtures :once wrap-setup) ; wrap-setup around the whole namespace of tests.
; use :each to wrap around each individual test
; in this package.
(testing ...)
は、このアプローチは、いくつかのカップリングを強制的にセットアップとティアダウンのコードとテストが入っているパッケージの間にありますが、一般にそれは大きな問題ではありません。 testing
セクションでは、いつでも手動でラッピングを行うことができます(例:the bottom half of this blog postを参照)。 `(DEFNテスト-NS-フックが[] は(作成-表) (入れ-4)を (入れ-5)を (取得-2)を (取得:
おかげで、私はこのようなものを使用して終了しました-3) (取得-4)を (スキャン-2)を (スキャン-3)を (スキャン-4)を (ドロップテーブル))あなたが本当ににテストを置くことになっていない ' –
@DavidWilliamsラップ/フック。フィクスチャ全体のポイントは、セットアップコードをテストから分離することです。これは、フックの引数(私の例ではf)のためのものです。フィクスチャのコードの適切な場所でテスト(およびその他のフック)を実行するコールバックです。次に、通常のようにテストを定義します(例えば、控えめなものなど)。 –
私は、ThornyDevのブログ記事がclojure.testの使用フィクスチャーの部分を素早く要約していることに同意します。 http://thornydev.blogspot.com/2012/09/before-and-after-logic-in-clojuretest.html –