正确使用断言

2024-04-06

您能否帮助我更好地理解“断言”与“引发异常”的正确用法是什么?每种场景什么时候合适?

场景1

CODE

public Context(Algorythm algo) {
  if (algo == null) {
      throw new IllegalArgumentException("Failed to initialize Context");
  }
  this.algo = algo;
}

TEST

public void testContext_null() {
  try {
      context = new Context(null);
      fail();
  } catch (IllegalArgumentException e) {
      assertNotNull(e);
  }
}

场景2

CODE

public Context(Algorythm algo) {
  assert (algo != null);
  this.algo = algo;
}

TEST

public void testContext_null() {
  try {
      context = new Context(null);
      fail();
  } catch (AssertionFailedError e) {
      assertNotNull(e);
  }
}

与断言的主要区别是;

  • 按类/包打开/关闭选定测试的能力。
  • 抛出的错误。

断言更适合在生产中关闭的测试。

如果您想要每次都检查的测试,尤其是验证输入中的数据,则应该使用每次运行的检查。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正确使用断言 的相关文章

  • java.lang.VerifyError:JVMVRFY012堆栈形状不一致;

    在 WAS 8 5 5 中部署 Maven 项目时出现以下错误 我在WAS中安装了JDK 1 6和1 7 错误500 org springframework web util NestedServletException 处理程序处理失败
  • 从文本文件中读取阿拉伯字符

    我完成了一个项目 在该项目中我读取了用记事本编写的文本文件 我的文本文件中的字符是阿拉伯语 文件编码类型是UTF 8 当在 Netbeans 7 0 1 中启动我的项目时 一切似乎都正常 但是当我将项目构建为 jar 文件时 字符以这种方式
  • 将 MouseListener 添加到面板

    我正在尝试将鼠标操作添加到我的面板中 这就是程序应该做的事情 编写一个程序 允许用户通过按三下鼠标来指定一个三角形 第一次按下鼠标后 画一个小点 第二次按下鼠标后 绘制一条连接前两个点的线 第三次按下鼠标后 绘制整个三角形 第四次按下鼠标会
  • 在 jTextfield 中禁用“粘贴”

    我有一个用 Swing awt 编写的应用程序 我想阻止用户将值粘贴到文本字段中 有没有办法在不使用动作监听器的情况下做到这一点 您可以使用 null 参数调用 setTransferHandler 如下所示 textComponent s
  • 如何在url请求中发送数组

    我的要求如下 我想给出演员姓名 开始日期 结束日期并获取他在该时期出演的所有电影 因此 我的服务请求是这样的 http localhost 8080 MovieDB GetJson name Actor startDate 20120101
  • 从 Spring MVC XML 文件转移到 javaconfig。我真的对我的数据库 XML 文件感到困惑

    我从 Spring MVC XML 文件转移到 javaconfig 我真的对我的数据库 XML 文件感到困惑 我不知道如何让 Hibernate4 工作以及我的 JBoss JNDI 数据源工作 有人可以告诉我如何使 javaconfig
  • 最快的高斯模糊实现

    如何以最快的速度实施高斯模糊 http en wikipedia org wiki Gaussian blur算法 我要用Java来实现它 所以GPU http en wikipedia org wiki Graphics processi
  • 使用 Spring 控制器处理错误 404

    I use ExceptionHandler处理我的网络应用程序抛出的异常 在我的例子中我的应用程序返回JSON回应HTTP status用于对客户端的错误响应 但是 我正在尝试弄清楚如何处理error 404返回与处理的类似的 JSON
  • 以有效的方式从 Map 中删除多个键?

    我有一个Map
  • 如何在 MSSQL 中获取 CURRENT_DATE?

    我正在使用 jpa 3 o 和 Hibernate 我有一个命名查询 SELECT COUNT wt id FROM WPSTransaction wt WHERE wt createdDate gt CURRENT DATE WPSTra
  • 如何在 HandlerInterceptorAdapter 中添加 HttpServletRequest 标头?

    我正在尝试将授权标头添加到我的请求中 作为我们切换环境时的临时解决方法 我试图在扩展 HandlerInterceptorAdapter 的拦截器中处理它 我使用 MutableHttpServletRequest 类制作here http
  • 无法从资源加载图片

    So I am trying to load a image file from a resource so that when I export my application into a jar file it could be use
  • 无法在 Java 中输出正确的哈希值。怎么了?

    在我的 Android 应用程序中 我有一个 SHA256 哈希值 我必须使用 RIPEMD160 消息摘要算法进一步对其进行哈希值 我可以输出任何字符串的正确 sha256 和ripemd160 哈希值 但是当我尝试使用ripemd160
  • 确定序列化对象的类型

    我需要通过套接字发送消息 从用户到引擎的请求 以及从引擎到用户的响应 所以流程本质上是 serialized request Server lt network gt Client serialized response request r
  • Java:SortedMap、TreeMap、可比较?如何使用?

    我有一个对象列表 需要根据其中一个字段的属性进行排序 我听说 SortedMap 和 Comparator 是实现此目的的最佳方法 我是否要与正在排序的类实现 Comparable 还是创建一个新类 如何实例化 SortedMap 并传入
  • Struts 1 到 Spring 迁移 - 策略

    我有一个legacy银行应用程序编码为Struts 1 JSP现在的要求是迁移后端 目前为 MVC to Springboot MVC 后续UI JSP 将迁移到angular Caveats 1 后端不是无状态的 2 会话对象中存储了大量
  • 纱线上的火花,连接到资源管理器 /0.0.0.0:8032

    我正在我的开发机器 Mac 上编写 Spark 程序 hadoop的版本是2 6 spark的版本是1 6 2 hadoop集群有3个节点 当然都在linux机器上 我在idea IDE中以spark独立模式运行spark程序 它运行成功
  • 在尝试使用 GPS 之前如何检查 GPS 是否已启用

    我有以下代码 但效果不好 因为有时 GPS 需要很长时间 我该如何执行以下操作 检查GPS是否启用 如果启用了 GPS 请使用 GPS 否则请使用网络提供商 如果 GPS 时间超过 30 秒 请使用网络 我可以使用时间或 Thread sl
  • 如何从字符串中解析一个大整数? [复制]

    这个问题在这里已经有答案了 我有一个这样的方法 Integer parseInt myInt 不是这个整数变得很长 我得到以下异常 java lang NumberFormatException For input string 40001
  • 为什么java.lang.Cloneable不重写java.lang.Object中的clone()方法?

    Java 规范java lang Cloneable接口将自身定义为表示扩展它的任何对象也实现了clone 休眠的方法java lang Object 具体来说 它说 一个类实现了Cloneable接口来指示java lang Object

随机推荐

  • 标准化整数与浮点的转换

    我需要将标准化整数值与实际浮点值相互转换 例如 对于 int16 t 值 1 0 用 32767 表示 1 0 用 32768 表示 尽管对每个整数类型 有符号和无符号 执行此操作有点乏味 但手动编写仍然很容易 然而 我想尽可能使用标准方法
  • 增加 Java 中主题的分区数量

    我正在使用名称 卡夫卡 2 12版本 2 3 0 根据我想更改的流量 负载最大分区某个主题的编号 Kafka启动后是否可以进行这种更改 并且可以通过代码完成吗 是的 您可以通过代码增加分区 使用AdminClient createParti
  • Android 当主题为深色时更改品牌启动背景颜色

    我在我的应用程序中实现了深色主题 一切正常 当系统处于深色模式时 应用程序也处于深色模式 反之亦然 问题是品牌启动 我有 2 个可绘制文件 Dark
  • 如何使用 ruby​​ 通过 ssl 通过 smtp 发送邮件(不使用 Rails,gmail 没有 TLS)

    我想要的只是使用 SSL 通过 SMTP 从我的 ruby 脚本发送电子邮件 我只找到了从 Rails 或使用 TLS 的 Gmail 执行此操作的示例 我发现人们谈论 ruby 1 8 5 的 SMTPS 支持 但是libdoc http
  • 显示没有索引的 pandas 数据框

    我想在没有索引列的情况下显示此数据框 我正在使用制表模块来更好地可视化数据 但不想在这里看到索引 我在 dftabulate 中尝试了index False 但它不接受这个参数 import pandas as pd from tabula
  • 如何在 jasper 报告中将文本字段旋转 90 度?

    我正在使用 iReport 设计器创建一些报告 在生成报告时 我遇到一个要求 必须以 90 度旋转显示静态文本字段 标签 如下图所示 我在互联网上搜索以获得解决方案 我发现 jaspersoft 不支持文本字段旋转 我在解决方案中读到了这个
  • 从 Admin SDK 调用 Firebase Callable Cloud 函数

    我有一个 Firebase 云函数 我想创建一个可调用函数 以便我可以从内置身份验证的 Web 客户端调用它 但我也想使用 Admin SDK 从我自己的后端代码调用它 特别是来自 Java 如果这很重要的话 我看到协议已记录 https
  • 在 Android 中的 Fragment 中使用 Google 地图

    我正在尝试在片段中加载 Google 地图 无论我尝试实现什么解决方案 我都会不断收到相同的错误 我已经解决了所有类似 如果不相同 的问题 并尝试按照前几个最佳答案的建议进行操作 但遗憾的是没有运气 因此 如果您能帮助我 我将不胜感激 我的
  • java 中像 read() 这样的 I/O 方法如何将线程置于阻塞状态?

    因此 如果我理解正确的话 当我们对对象调用 wait 时 线程会进入等待状态 而当它等待对象上的锁时 例如尝试进入同步块或方法时 线程会进入阻塞状态 像 read 这样的 I O 方法如何将线程置于阻塞状态 我理解为什么它必须处于阻塞状态
  • OpenGL - 固定管线着色器默认值(使用着色器模仿固定管线)

    谁能给我提供类似于固定功能管道的着色器 我最需要默认的片段着色器 因为我在网上找到了类似的顶点着色器 但如果你有一双应该没问题 我想使用固定管道 但具有着色器的灵活性 因此我需要类似的着色器 以便我能够模仿固定管道的功能 非常感谢 我是新来
  • 基本 javascript 警报在英特尔 XDK 代码编辑器中不起作用

    我正在从一个新的空白英特尔项目开始 我什至还没有开始编码 我只是设置文件树并确保 html 和 javascript 页面通过正确的锚点和脚本路径连接 但我的第一个 js 文件无法工作 我提供了测试代码和错误的屏幕截图 我知道语法是正确的
  • tkinter 中的框架未彼此堆叠

    我在 tkinter 中将 页面 堆叠在一起时遇到问题 我有一个主Frame包含两个子帧 两个子帧都包含不同的信息 第一个子帧包含Listbox和几个按钮 位于主框架的左侧 第二个框架应该包含不同的 页面 现在有两个 并让它们填满整个框架
  • 重定向到 HTTP 非 www 到 HTTPS www htaccess

    我想使用 HTTPS 协议从任何方向重定向到我们的网站 但有些重定向不起作用 我要这个 http www site co TO https www site co http site co TO https www site co 这是我的
  • 如何在同一页面(列表/创建)MVC3中使用@model IEnumerable<>和@model<>

    假设我有一个 Location 类 并且我正在使用 MVC3 创建一个脚手架列表 index cshtml 索引 html 页面使用 model IEnumerable 如果我想向列表中添加新位置 请按 创建 然后使用 model Proj
  • Android - 如何确定调用应用程序的包名称

    我最近遇到了这个问题 我找不到在我的活动中调用应用程序的包名称的方法 如果调用应用程序使用startActivityForResult 那就没问题了 我可以信赖Activity getCallingPackage 获取调用者的包名 但是当调
  • 如何使用 Rvest 抓取带有嵌套列的 HTML 表格?

    我在废弃带有嵌套列的 HTML 表时遇到了一个大问题 该表来自于香港入境事务处 https www immd gov hk eng stat 20220901 html 屏幕截图如下所示 我尝试用 rvest 来做 但结果很混乱 libra
  • ATS 应用程序传输安全:Webview 内的 HTTP url

    我们有一个在 Webview 中显示 HTML 内容的应用程序 目前提供给 Webview 的内容来自非安全域 从 iOS10 开始 它应该从安全域提供服务 因此在迁移之前需要消除一些疑虑 安全的 HTML 页面 https 是否也应该具有
  • 能否将两个给定的 XSD 数据类型连接成一种新的 XSD 数据类型?

    给定两种简单的数据类型 例如受限字符串type1 type2 是否有可能定义type3描述通过连接一个字符串形成的所有字符串type1字符串加一type2 string 例如 考虑
  • 超过最大百分比的日期

    我有一个如下所示的数据框 df lt data frame site paste0 site sort rep 1 5 20 date as Date paste0 sample 1 28 100 replace T sample 1 12
  • 正确使用断言

    您能否帮助我更好地理解 断言 与 引发异常 的正确用法是什么 每种场景什么时候合适 场景1 CODE public Context Algorythm algo if algo null throw new IllegalArgumentE