【发布时间】:2016-02-01 04:30:09
【问题描述】:
我正在使用 Stuart Sierra 组件实现一个应用程序。正如他在自述文件中所说:
有一种连贯的方式来设置和拆除所有相关的状态 与应用程序可以实现快速的开发周期,而无需 重新启动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)
注意:我在这里说的是单元测试。
【问题讨论】:
标签: unit-testing testing clojure clojure-testing