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

欢迎!请参见 关于 页面了解更多关于此网站的信息。

0
Spec

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

使用 {{clojure.core/assert}} 可以将额外数据拼接到格式化消息中,但 {{clojure.spec/assert}} 没有这样的功能。clojure 的 {{assert}} 的 {{message}} 参数是在 CLJ-774 中添加的,并且在那里表示机制并不理想。将报告作为数据传递的一个显著好处是,编辑器可以在存在大量数据的情况下优雅地处理它们。

此建议与 CLJ-415 相关,但它具有更广泛的作用。通过传递额外的 map,可以传递任何值(而不仅限于局部变量),并且不会有意外涌入大型局部变量的风险。

6 个回答

0

由:alexmiller 评论

您能否用这种方法可能会很有用的场景作为起点?这里的标题是一个解决方案,但我们认为最好从问题开始,考虑替代方案,然后选择解决方案。

0

由:vitoshka 评论

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

0

由:alexmiller 评论

从这一角度重写工单是一个不错的开始。

0

由:vitoshka 评论

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

0

由:alexmiller 评论

对此表示歉意!我已经赋予了您编辑权限。

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