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

欢迎!请参阅关于页面了解该系统的工作原理。

0
文档

use-fixtures的文档字符串表示

在测试运行中包裹在函数组件内以执行设置和拆卸操作。使用:each类型时,将为每个使用deftest或with-test创建的测试函数逐一运行,而:once会将整个运行包裹在单个函数中

我认为解释一下函数组件是什么以及如何执行设置和拆卸操作会有所帮助。我知道因为我看过示例,但我觉得文档字符串根本未解释这一点。

这是否是Core感兴趣修复补丁的问题?

3 答案

0

由:alexmiller发表的评论

这已在clojure.test命名空间的文档字符串中被详细解释了

`
函数组件以一种或另一种方式附加到命名空间中。"each"
类型的函数组件会在每个测试函数上反复运行
由deftest或with-test创建,"each"类型的函数组件对于
为每个测试建立一致的"前后"状态很有用,例如
清除数据库表。

"each"类型的函数组件可以按如下方式附加到当前命名空间
(use-fixtures :each fixture1 fixture2 ...)
function1, function2就像上面的示例一样。
它们也可以是匿名函数,例如
(use-fixtures :each (fn [f] setup... (f) cleanup...))

另一种类型的组件,"once"类型的组件,只运行一次,
封装当前命名空间中所有的测试。
"once"类型的组件对于需要只执行一次的任务很有用,例如
建立数据库连接或对于耗时的任务。

按如下方式将"once"类型的组件附加到当前命名空间
(use-fixtures :once fixture1 fixture2 ...)
`

我没有真正回答你的问题,只是想知道你是否已经看过这一点,这会不会改变你的问题。

0

评论者:[email protected]

或许直接指向用户的ns文档字符串是个不错的替代方案?我已经忘记了关于ns的文档字符串,并且我不确定在use-fixtures中重复关于固定装置的文档是否是一个好主意。

可能是这样的吗?

`
将测试运行封装在固定装置函数中以执行设置和清理。
使用:each固定装置类型会为每个测试单独封装,
:once将整个运行封装在一个单独的函数中

有关详细信息,请参阅clojure.test的文档字符串。
`

0
参考:[链接](https://clojure.atlassian.net/browse/CLJ-1813)(由[email protected]报告)
...