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