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