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

欢迎!请查看 关于 页面,了解更多有关本网站的信息。

0
Spec

提供断言上下文额外的信息是一个常见需求。例如,可能需要将局部或动态绑定的值包含在断言报告中,或者在测试环境之外使用 clojure.spec/assert 来利用具有 {{specs}} 的结构化错误。

使用 {{clojure.core/assert}} 可以将额外数据拼接到格式化消息中,但 {{clojure.spec/assert}} 没有这样的功能。Clojure 的 {{assert}} 中增加了 {{message}} 参数,CLJ-774 中提到该机制不理想。将报告作为数据传递的一个显著好处是,编辑器可以方便地处理大数据。

该提案与 CLJ-415 有关,但范围更广。通过一个额外的映射,可以传递任何值(而不仅仅是局部值),而且不会意外地使 REPL 填满大量局部值。

6 答案

0

由:alexmiller 评论

你能从您想要做什么的用例开始吗?这里的标题是一个解决方案,但我们发现从问题开始,考虑替代方案,然后选择一个解决方案会更好。

0

由:vitoshka 编辑

编辑:将动机移至问题的 "描述" 部分中。

0

由:alexmiller 评论

从这个角度重新编写工单将是一个好的开始。

0

由:vitoshka 编辑

我很乐意重新编写,但 Jira 不允许编辑描述。

0

由:alexmiller 评论

对此深感抱歉!我已经给你编辑权限。

0
参考资料:https://clojure.atlassian.net/browse/CLJ-2223(由 vitoshka 报告)
...