我认为我多次做过类似的事情
(is (= some-map (try (func ...) (catch Exception e (ex-data e)))
不确定是否之前已有人提出,但是有没有人对此种形式的
(defmethod assert-expr 'thrown-with-data? [x form]
对异常的数据映射进行检查?
一个复杂的问题是字符串有进行部分匹配的方便工具:正则表达式。此时没有这种无处不在的匹配器,导致没有明显的输入。选项可以是接受映射并返回 true 或 false 的单个参数函数,类似于正则表达式。或者可能只是允许与某个值进行比较?或许是一个规范?
显然有大量的设计选择,不清楚这是否意味着将其留给单个用户,还是 clojure.test 中有空间或兴趣。