4
我正在使用Stuart Sierra組件實現一個應用程序。Clojure - 用組件策略測試
有一個連貫的方式來建立和拆除與應用程序相關 能夠快速的開發週期中的所有狀態而不 重新啓動JVM:由於他在自述狀態。它還可以使單元測試更快更獨立,因爲創建和啓動系統的成本足夠低,因此每個測試都可以創建系統的新實例。
這裏的首選策略是什麼?類似於JUnit oneTimeSetUp/oneTimeTearDown的東西,還是真的在每個測試之間(類似於setUp/tearDown)?
如果在每次測試之間,是否有一個簡單的方法來啓動/停止系統全部測試(之前和之後),而無需每次重複代碼?
編輯:示例代碼來說明我的意思
(defn test-component-lifecycle [f]
(println "Setting up test-system")
(let [s (system/new-test-system)]
(f s) ;; I cannot pass an argument here (https://github.com/clojure/clojure/blob/master/src/clj/clojure/test.clj#L718), so how can I pass a system in parameters of a test ?
(println "Stopping test-system")
(component/stop s)))
(use-fixtures :once test-component-lifecycle)
注意:我在這裏談論的單元測試。