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

欢迎!请查看关于页面获取更多关于这是如何工作的信息。

0
Spec

提供断言上下文额外信息的常规需求很常见。例如,可能希望将本地或动态绑定的值包含在断言报告中,或在不测试环境中使用clojure.spec/assert利用具有{{specs}}的结构化错误。

使用{{clojure.core/assert}}可以在格式化消息中拼接额外数据,但使用{{clojure.spec/assert}}没有此功能。clojure的{{assert}}的{{message}}参数是在CLJ-774中添加的,并承认那里的机制不是最优的。使用数据传递报告的一个显著优点是,编辑器可以优雅地处理大数据。

此建议与CLJ-415相关但范围更广。通过额外的map,可以传递任何值(而不仅是本地值),而且不会意外地使REPL充满大量本地变量。

6 答案

0

评论者:alexmiller

您能否从您尝试通过此解决问题的一个用例开始?这里的标题是一个解决方案,但我们发现从问题开始,考虑替代方案,然后选择解决方案是最好的。

0

评论者:vitoshka

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

0
by

评论者:alexmiller

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

0
by

评论者:vitoshka

我很乐意修改,但Jira不允许编辑描述。

0
by

评论者:alexmiller

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

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