gpt4 book ai didi

unit-testing - Clojure 单元测试。如何测试函数是否抛出异常?

转载 作者:行者123 更新时间:2023-12-04 04:11:00 24 4
gpt4 key购买 nike

我看到有一种方法可以测试一个函数是否抛出类 C 的异常。但是有没有一种方法可以测试一个函数是否抛出任何异常。或者断言它不应该抛出异常?

最佳答案

对于不需要异常的测试,请照常编写测试。抛出的任何异常都会导致测试失败。

对于可能抛出任何异常的测试,请使用 ExceptionThrowable (异常的父类(super class))。

例如:

(deftest mytest 
(is (thrown? Exception (/ 1 0))))
(/ 1 0)会抛出 java.lang.ArithmeticException但也会被它的父类匹配 java.lang.Exception .

你也可以写一个 not-thrown?宏做相反的 thrown? clojure.test 中的宏。

附带说明一下,在进行单元测试时,您通常希望捕获更具体的错误,因为您的代码可能会抛出一个新的意外错误,但您的测试会很高兴地通过。

关于unit-testing - Clojure 单元测试。如何测试函数是否抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32063244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com