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

2023-12-25

我看到有一种方法可以测试函数是否抛出类 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(使用前将#替换为@)

Clojure 单元测试。如何测试函数是否抛出异常? 的相关文章

随机推荐

  • 快速从网络抓取函数返回一个字符串

    好的 我正在抓取网页的一些基本数据 我想将我的代码重构为另一个类 并从我检索到的内容返回一个字符串 但这对于异步函数来说很困难 而且我对 swift 很陌生 我现在意识到这个函数无法返回字符串 但我不太清楚如何配置完成处理程序以及如何使用完
  • 添加新颜色以及自定义主题颜色 angular2 材质

    如何在 Angular 2 材质中添加新颜色 它在 ng2 material 文档中指定 color primary accent warn 被接受 我想添加类似 progressbarcolor 的内容 而不是在我的 angular2 材
  • 包括未找到模块 RubyMotion

    RubyMotion 中允许 mixin 吗 我有一个包含两个文件的目录 一个是类 另一个是模块 当我在类中包含模块 mixin 时 出现未找到错误 RM 中自动需要应用程序下的所有内容 对吗 谢谢你的帮助 找到了 http dylanma
  • Javascript WebWorker - 异步/等待

    我正在尝试卸载阻塞我的用户界面的长时间运行的进程 WebWorker 方法似乎是解决这种情况的最佳方法 但是 我需要使用的库之一具有 async await WebWorker 的 JS API 有限 并且似乎没有 async await
  • 比较 javascript/jquery 中的两种日期格式

    我有以下内容 var fit start time fit start time val 2013 09 5 var fit end time fit end time val 2013 09 10 if Date parse fit st
  • 如何解析rabbitmq状态输出?

    我在 Linux 上安装了 RabbitMQ 它是一个很棒的软件 当我运行这个命令时 sudo rabbitmqctl status 我得到一团糟的输出 pid 18665 running applications rabbitmq man
  • 如何通过代码打开 Vaadin ComboBox?

    是否可以开一个Vaadin ComboBox通过代码 我想展示两个相互依赖的组合框 当用户在第一个组合框中选择一个值时 我希望第二个组合框自动打开可能的选择 以便用户可以直接选择一个 而不必自己打开第二个组合框 也许我可以发送一个事件来触发
  • 如何比较java中的两个字符串并按字母顺序定义其中一个比另一个小?

    我想使用二分搜索算法来搜索用户在一个非常大的排序文件中输入的字符串 我无法将用户输入的字符串与位于文件中间行的字符串进行比较以继续我的二分搜索 例如 如果用户的字符串是abcda文件的字符串是abcza 很明显用户的字符串比文件的字符串小
  • 错误 C4996:“scanf”:此函数或变量在 C 编程中可能不安全

    我创建了一个小型应用程序 通过使用带参数的用户定义函数来查找最大数量 当我运行它时 它显示此消息 错误 1 错误 C4996 scanf 此函数或变量可能不安全 考虑使用 scanf s 代替 要禁用弃用 请使用 CRT SECURE NO
  • 由于私钥过滤器,使用signtool进行代码签名失败

    在尝试签署我工作的公司创建的一些安装程序时 我遇到了一个错误 但我无法解决 我正在使用已在另一台计算机 Win7 上成功使用的相同证书 以相同的方式签署准相同的安装程序 无论如何 在运行 CruiseControl net 的 Window
  • R Shiny - 了解更新相互依赖的输入时观察和观察事件之间的区别

    下面的应用程序有两个相互依赖的 numericInputs a and b 的价值input a is 1 input b和价值input b is 1 input a 每当用户更改输入的值时 我想相应地更新另一个输入的值 下面的代码包含两
  • 如何使这些动态类型函数类型安全? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否有任何编程语言 或类型系统 可以以静态类型和类型安全的方式表达以下 Python 函数 无需使用强制转换 运行时检查等 1 My
  • 在iPhone上播放第三方库解码的音频

    第三方库生成任何所需大小的 16 位带符号立体声样本的顺序缓冲区 我无法弄清楚使用哪些框架 函数来从这些缓冲区中播放 我一直在研究这个例子这个答案 https stackoverflow com questions 1710133 play
  • 重新连接后继续FTP下载

    重新连接ftp服务器后是否可以继续ftp下载 是的 在协议级别 在 RETR 之前发送服务器 REST 以查找文件中的某个位置 因此 如果文件已有 1500 字节 则执行 REST 1500 它将从第 1501 个字节开始发送 这是一个例子
  • 使用参数 {NDK_PROJECT_PATH=null 执行进程 .../ndk-bundle/ndk-build 时出错

    为什么我会收到下一个错误 附注没有任何ndk build文件夹位于ndk bundle这是什么意思 Build command failed Error while executing process home user Android S
  • Python发送UDP数据包

    我正在尝试编写一个程序来发送 UDP 数据包 如https wiki python org moin UdpCommunication https wiki python org moin UdpCommunication该代码似乎是 Py
  • 使用 boost Spirit (longest_d) 解析 int 或 double

    我正在寻找一种将字符串解析为 int 或 double 的方法 解析器应该尝试两种选择 并选择与输入流的最长部分匹配的一个 有一个已弃用的指令 longest d 正是我正在寻找的 number longest d integer real
  • RavenDB:Raven 查询未返回文档授权的正确计数

    public class EngineInfo public int Id get set public int AircraftId get set public string SerialNumber get set public in
  • VSTS 登录失败,出现 401 未授权 - [用户] 有多个与其关联的帐户

    我尝试让域中的新用户访问我们的 VSTS 我们通过 MPN 订阅 MSDN 企业版 如果用户使用其工作帐户登录 my visualstudio com 则订阅已分配且对用户可见 如果用户尝试访问 ourprojects visualstud
  • Clojure 单元测试。如何测试函数是否抛出异常?

    我看到有一种方法可以测试函数是否抛出类 C 的异常 但是有没有一种方法可以测试函数是否抛出任何异常 或者断言它不应该抛出异常 对于预计不会出现异常的测试 请按正常方式编写测试 任何抛出的异常都会导致测试失败 对于可能引发任何异常的测试 请使