断言列表时,assertEquals 到底检查什么?

2024-04-20

在我的测试中,我断言我返回的列表是我刚刚创建的列表按字母顺序排列的列表。

assertEquals 到底检查什么?它检查列表的顺序还是仅检查其内容?

因此,如果我有一个 { "Fred", "Bob", "Anna" } 列表,那么列表中的 2 个 { "Anna", "Bob", "Fred" } 会返回 true,因为它们包含相同的对象,无论顺序如何?


如果你遵循jUnit的源代码。你会看到assertEquals最终调用equals中提供的对象的方法isEquals method.

private static boolean isEquals(Object expected, Object actual) {
    return expected.equals(actual);
}

源代码: https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/Assert.java https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/Assert.java

这将调用.equals()实施方法List。这里是源代码 http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/AbstractList.java#AbstractList.equals%28java.lang.Object%29为了.equals()“ArrayList”的实现。

ArrayList.equals()

  public boolean equals(Object o) {
      if (o == this) //Equality check
          return true;
      if (!(o instanceof List))  //Type check
          return false;
      ListIterator<E> e1 = listIterator();
      ListIterator e2 = ((List) o).listIterator();
      while(e1.hasNext() && e2.hasNext()) {
          E o1 = e1.next();
          Object o2 = e2.next();
          if (!(o1==null ? o2==null : o1.equals(o2))) //equality check of list contents
              return false;
      }
      return !(e1.hasNext() || e2.hasNext());
  }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

断言列表时,assertEquals 到底检查什么? 的相关文章

随机推荐

  • 如何检查png文件是否是减压炸弹

    我正在尝试将图像上传到网站 我发现在允许上传时可能会发生这些减压炸弹攻击png文件 和其他一些 由于我要更改上传的图像 我想确保我不会成为这次攻击的受害者 因此 当涉及到检查是否png文件是一个炸弹 我可以读取文件的标题并确保宽度和高度不超
  • 为什么我的递归阶乘方法总是返回 0? [复制]

    这个问题在这里已经有答案了 我创建了一个递归方法来计算数字的阶乘 但是 它总是返回 0 我不明白为什么 我在下面提供了我的代码 public class projectTwenty public static void main Strin
  • 在其他列定义的窗口内累积应用

    我试图将函数累积地应用于由 开始 和 完成 列定义的窗口内的值 因此 开始 和 完成 定义了值处于 活动 的时间间隔 对于每一行 我想获得当时所有 活动 值的总和 这是一个 暴力 示例 它实现了我想要的功能 是否有更优雅 更快或更有效的内存
  • store.sync() 回调

    store sync 有回调吗 我正在尝试这样做 store sync function alert 1 但它不起作用 这家店是当地的一家店 sync 没有 回调 为了实现此行为 您需要监听存储的写入事件 查看这个解决方案 https st
  • 如何在 awk 中对模式进行 if else 匹配

    我尝试过以下命令 awk search pattern print 1 如何编写上述命令的 else 部分 经典方式 https www gnu org software gawk manual gawk html If Statement
  • React Native 中的响应式图像

    我从 Facebook API 获取一些图像 我想将它们显示为响应式 宽度为 100 高度为自动 问题似乎是 React Native 裁剪了我的图像 我尝试了这些解决方案 解决方案1 https stackoverflow com a 3
  • iOS:同时使用 WiFi 和移动数据

    Setup 我的项目涉及一个 WiFi 相机 它创建一个 WiFi 热点 为了在相机上流式传输视频预览 浏览媒体 用户需要连接到相机的热点 Problem 用户无法同时使用 3G 4G 上的蜂窝数据 因为 iOS 设备已通过 WiFi 连接
  • SSLHandshakeException:握手期间远程主机关闭连接

    论坛上充斥着这个问题 但我找不到解决方案 我尝试连接 WS 但没有成功 我尝试更新 cacerts 文件 但没有效果 日志是 Allow unsafe renegotiation false Allow legacy hello messa
  • Code::Blocks 中的 wxWidgets 字体错误“GetWeightClosestToNumericValue() 中断言“numWeight > 0”失败”

    最近 每当我使用 Code Blocks 时 都会不断弹出错误对话框 它显示 此应用程序中的调试错误已失败 和 include wx font h 282 在 GetWeightClosestToNumericValue 中断言 numWe
  • 使用 com.zaxxer.hikari.HikariDataSource 时出错

    我在将 HikariCP 与 Spring 的 JdbcTemplate 集成时遇到错误 我正在使用 Spring 3 2 2 HikariCP 2 3 8 和 sybase jconn4 版本 7 0 0 弹簧配置
  • 为什么 cppreference 将 type_traits xxx_v 快捷方式定义为内联 constexpr 而不仅仅是 constexpr?

    为什么 cppreference 将 type traits xxx v 快捷方式定义为inline constexpr不仅仅是constexpr 例如 参见is integral v http en cppreference com w
  • 在 shell 中用字符串替换变量

    我将一个字符串作为参数传递给 shell 脚本 shell 脚本应该告诉我传递的参数是否是变量 像这样的东西 if z 1 then echo yes 1 is a variable and its value is 1 fi 但这给了我严
  • python子进程在引号前发送反斜杠

    我有一个字符串 它是一个应该在命令行中执行的框架命令 cmdToExecute TRAPTOOL a 字符串 ABC o 字符串 XYZ 我正在考虑该字符串具有应从命令提示符触发的整个命令 如果仔细查看字符串 cmdToExecute 您可
  • MySQL表不存在错误,但它确实存在

    有谁知道什么条件下可以收到1146 Table
  • 如何覆盖 sbt 中对某些任务的依赖

    我想在某些任务中覆盖对项目的依赖 我有一个使用 Spark 的 sbt 多项目 lazy val core Some Project val sparkLibs Seq org apache spark spark core 1 6 1 v
  • 实体框架中的集合值参数?

    在我的上一个项目中 我决定使用实体框架 一切都很顺利 直到我尝试使用 在哪里 我收到一个错误 经过一番小小的搜索后我想出了这个帖子 https stackoverflow com questions 110314 linq to entit
  • 调用 Pyramid 中的另一个视图

    我的目标 在 Pyramid 中 调用另一个可调用视图 并获得一个Response在不知道有关该视图可调用的任何详细信息的情况下拒绝返回 在我的 Pyramid 应用程序中 假设我有一个使用 view config 装饰器定义的视图 foo
  • Azure 函数中的内存缓存

    需要缓存对象以提高我的 Azure 函数的性能 我尝试了 NET ObjectCache System Runtime Caching 它在我的测试中运行良好 测试的缓存保留期长达 10 分钟 为了推进这个解决方案 我有几个简单的问题 Az
  • 如何为网页上的文本绘制添加动画效果?

    我想要一个网页 其中有一个居中的单词 我希望用动画绘制这个单词 以便页面以与我们相同的方式 写 出该单词 即它从一个点开始 随着时间的推移绘制直线和曲线 以便最终结果是一个字形 我不在乎这是否完成
  • 断言列表时,assertEquals 到底检查什么?

    在我的测试中 我断言我返回的列表是我刚刚创建的列表按字母顺序排列的列表 assertEquals 到底检查什么 它检查列表的顺序还是仅检查其内容 因此 如果我有一个 Fred Bob Anna 列表 那么列表中的 2 个 Anna Bob