首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在clojure.test中为一组测试设置夹具

如何在clojure.test中为一组测试设置夹具
EN

Stack Overflow用户
提问于 2016-02-14 23:45:45
回答 1查看 564关注 0票数 2

在我的测试中,我使用了类似这样的东西:

代码语言:javascript
复制
;; api.utils
(defn wrap-test-server [f]
  (start-test-server)
  (f)
  (stop-test-server))

;; api.some-endpoint
(use-fixtures
  :once
  utils/wrap-test-server)

但是,我必须在每个测试模块中复制夹具设置代码。

如何为所有测试设置一个全局fixture?

或者更好的是,提供一个“包”,这样api.*中的测试就可以用开始/停止夹具进行包装。

请注意,在这种情况下,我并不关心包装的“级别”。以下两种方法都可以工作:

代码语言:javascript
复制
;; Wrap around all the tests in the package:
(start-test-server)
(test-1)
...
(test-n)
(stop-test-server)
;; Wrap every test in the package:
(start-test-server)
(test-1)
(stop-test-server)
...
(start-test-server)
(test-n)
(stop-test-server)
EN

回答 1

Stack Overflow用户

发布于 2016-02-15 01:29:52

您绝对可以将该函数拉到另一个名称空间中,并以这种方式重用它,并执行以下操作:

代码语言:javascript
复制
(defn one-time-setup [f]
    (start-test-server)
    (f)
    (stop-test-server))

(use-fixtures :once one-time-setup)

这个博客post很好地总结了这一点。在帖子中:

:once fixture -在运行任何测试之前将被调用的方法,它将被传递一个要调用的函数,该函数将调用所有测试。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35393649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档