2024年Clojure状态调查!中分享您的想法。

欢迎!关于如何使用本站的更多信息,请参阅关于页面。

0票数
文档

use-fixtures的文档字符串指示:

将测试运行包装在 fixtures 函数中以执行设置和拆卸操作。使用 fixtures 类型的 :each 会为每个单独的测试包裹每个测试,而 :once 将整个运行包裹在一个单一函数中。

我认为解释 fixture 函数是什么以及它如何执行设置和拆卸工作会有所帮助。我知道因为我已经查看了示例,但是我认为文档字符串根本就没有解释这一点。

Core是否对此类修补感兴趣?

3 个答案

0票数

评论由:alexmiller 发布

这已在clojure.test命名空间文档字符串中进行了更深入的说明

`
Fixtures 可以以两种方式与命名空间相关联。\"each\"
Fixtures 会在创建的每个测试函数中重复运行一次
使用 \"deftest\" 或 \"with-test\"。\"each\" fixtures 对于
为每个测试建立一致的前/后状态很有用,例如
清除数据库表。

\"each\" fixtures 可以这样附加到当前命名空间中
(use-fixtures :each fixture1 fixture2 ...)
fixture1、fixture2 等于上面的示例中的函数。
它们也可以是匿名函数,如下所示
(use-fixtures :each (fn [f] setup... (f) cleanup...))

另一种 fixture 类型的 fixture,称为 \"once\" fixture,只会运行一次
在命名空间中所有测试周围。\"once\" fixtures 对于
只需要执行一次的任务很有用,比如建立
数据库连接,或对于耗时任务。

这样将 \"once\" fixtures 附加到当前命名空间中
(use-fixtures :once fixture1 fixture2 ...)
`

我并没有真正回答你的问题,只是想知道你是否看到了这一点,以及这是否改变了你的问题。

0票数

评论由:[email protected] 发布

可能仅仅将用户指向ns的docstring会是一个不错的选择?我忘记了ns上的docstring,并且我不确定在use-fixtures中复制有关fixture的文档是否是一个好主意。

可能是这样的吗?

`
将测试封装在fixture函数中以执行设置和拆卸。
使用:each类型的fixture将每个测试分别封装起来,
而:once类型则将整个运行封装在一个单个函数中

有关更多详细信息,请参阅clojure.test的docstring。
`

0票数
by
...