我认为我做了几次数次类似的事情
(is (= some-map (try (func ...) (catch Exception e (ex-data e)))
不确定之前是否已经有人提出过这个问题,但是有没有兴趣以一种某种形式的
(defmethod assert-expr 'thrown-with-data? [x form]
来检查异常的数据映射?
一个复杂之处在于,字符串有简单的方式进行部分匹配:正则表达式。映射没有这种无所不在的匹配器,导致没有明显的输入。选项可以是接收映射并返回真或假的单个参数函数,就像正则表达式一样。或者也许只允许比较一个值?或许是一个规范?
显然这里有很多设计选择,不知道这意味着将它们留给单个用户,还是Clojure.test中有空间或兴趣。