提供断言上下文额外信息的常见需求。例如,可能想要将局部或动态绑定值包含在断言报告中,或者在测试环境之外使用 clojure.spec/assert
利用具有 {{specs}} 的结构化错误。
使用 {{clojure.core/assert}} 可以将额外数据拼接到格式化消息中,但使用 {{clojure.spec/assert}} 没有这样的功能。Clojure 的 {{assert}} 消息参数是在 CLJ-774 中添加的,并承认该机制并非理想。将报告作为数据传递的一个显著优点是编辑器可以优雅地处理大量数据。
此提议与 CLJ-415 相关,但范围更广。使用一个额外的映射,可以传递任何值(不仅仅是局部值),且不存在意外将大量局部值洪水式地输入到 REPL 中的风险。