2024 年 Clojure 状态调查! 中分享您的想法。

欢迎!请访问 关于 页面获取有关此操作更详细的信息。

+3
测试

我认为我多次做过类似的事情

(is (= some-map (try (func ...) (catch Exception e (ex-data e))

不确定这个问题是否已经被提出过,但有没有人会对以下形式感兴趣?

(defmethod assert-expr 'thrown-with-data? [x form]

来检查异常的数据映射?

一个复杂性在于字符串有一个简单的方式进行部分匹配:正则表达式。集合没有这种通用的匹配器,因此没有明显的输入。选项可以是接受映射并返回 true 或 false 的单个参数函数,类似于正则表达式。或者只允许与某个值进行比较?也许是一个规范?

显然这里有很多设计选择,不确定这是否意味着让它由单个用户决定,或者是否有 clojure.test 的空间或兴趣。

一个提供此功能的库示例是 matcher-combinators
```
(deftest exception-matching
  (is (thrown-match? clojure.lang.ExceptionInfo
                     {:foo 1}
                     (throw (ex-info "Boom!" {:foo 1 :bar 2})))))
```

https://github.com/nubank/matcher-combinators#clojuretest

1 回答

+1

如果有一些有意义的事情,肯定会感兴趣。如果有人已经创建了类似的东西,如果有任何经验,会感兴趣的。

...