我看到有一种方法可以测试函数是否抛出类 C 的异常。但是有没有一种方法可以测试函数是否抛出任何异常。或者断言它不应该抛出异常?
对于预计不会出现异常的测试,请按正常方式编写测试。任何抛出的异常都会导致测试失败。
对于可能引发任何异常的测试,请使用Exception
or Throwable
(异常的超类)。
例如:
(deftest mytest
(is (thrown? Exception (/ 1 0))))
(/ 1 0)
会抛出一个java.lang.ArithmeticException
但也会被它的父类匹配java.lang.Exception
.
你也可以写一个not-thrown?
宏做相反的事情thrown? https://github.com/clojure/clojure/blob/clojure-1.10.0/src/clj/clojure/test.clj#L504-L516Clojure.test 中的宏。
作为旁注,您通常希望在进行单元测试时捕获更具体的错误,因为您的代码可能会抛出新的意外错误,但您的测试会很高兴地通过。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)