提供断言上下文额外信息的常规需求很常见。例如,可能希望将本地或动态绑定的值包含在断言报告中,或在不测试环境中使用clojure.spec/assert
利用具有{{specs}}的结构化错误。
使用{{clojure.core/assert}}可以在格式化消息中拼接额外数据,但使用{{clojure.spec/assert}}没有此功能。clojure的{{assert}}的{{message}}参数是在CLJ-774中添加的,并承认那里的机制不是最优的。使用数据传递报告的一个显著优点是,编辑器可以优雅地处理大数据。
此建议与CLJ-415相关但范围更广。通过额外的map,可以传递任何值(而不仅是本地值),而且不会意外地使REPL充满大量本地变量。