为什么junit中的assertEquals和assertSame对于同一个类的两个实例返回相同的结果?

2023-12-24

根据文件

assertEquals() 断言两个对象相等。

assertSame() 断言两个对象引用同一个对象。

所以我期待如果我有像下面这样的课程

class SomeClass {}

then

SomeClass someClass1= new SomeClass();
SomeClass someClass2= new SomeClass();
assertSame(someClass1,someClass2); // fail
assertEquals(someClass1,someClass2); // fail

assertEquals 应该通过,assertSame 应该失败,因为两个类的值相等,但它们具有不同的引用位置。

由于我在这两种情况下都失败了,那么我的问题是这两者之间有什么区别?


由于您没有在班级中覆盖 equals,assertEquals行为相同assertSame因为默认 equals 实现比较引用。

150    public boolean equals(Object obj) {
151        return (this == obj);
152    }

如果你提供了一个愚蠢的 equals 重写:

class SomeClass {
    @Override 
    public boolean equals(Object o) {
        return true;
    }
}

你会看到的assertEquals成功了。

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

为什么junit中的assertEquals和assertSame对于同一个类的两个实例返回相同的结果? 的相关文章

随机推荐

  • Linq to SQL 的单元测试实践

    我正在尝试进行单元测试 但遇到了一种我不确定的行为 可以备份库存 基本上 Inventory 表被复制到 InventoryHistory 表 并给出备份发生时间的时间戳 HistoryDate 以下是备份库存的代码 DateTime hi
  • 在 r-bloggers 上获取 Hugo-goa 的 blogdown

    我尝试带来以下博客风格blogdown new site theme shenoybr hugo goa 致 r 博主 下列的如何在 R Bloggers 上获取我的 blogdown 博客 https stackoverflow com
  • Spring Security:始终将登录用户重定向到页面

    Spring security 有一个很好的功能 它会记住请求资源的 url 并在身份验证成功后将用户重定向到该资源 但我希望用户在登录后始终重定向到其他页面 这是如何完成的 在您的 spring security 配置中使用以下内容
  • 使用 __init__ 继承属性

    我是一个Java人 刚刚开始学习Python 举个例子 class Person def init self name phone self name name self phone phone class Teenager Person
  • 可选后备 SPARQL 模式的替代方案?

    我需要为目标集中的每个资源检索单个图像 并按优先级顺序测试多个非独占谓词 I m 使用标准的可选回退模式 select r i where r a dbo Automobile optional r
  • 无法使用 Xcode 存档(错误 - PhaseScriptExecution 因非零退出代码而失败),但构建成功

    I am sorry for the black marks in the image 我已经看到多个帖子建议解决这个问题 Lock 解锁钥匙串 尝试过 pod 更新 尝试过 清除构建 尝试过 签名 在构建设置中跳过安装 尝试过 实际上没有
  • 如何在Nose2中运行特定测试

    在以前版本的 Nose 测试框架中 有多种方法可以仅指定所有测试的子集 nosetests test module nosetests another test TestCase test method nosetests a test T
  • 带套接字的 TCP 客户端/服务器、服务器向客户端发送文件、客户端挂起、Python

    我想用Python 中的套接字编写一个简单的TCP 服务器 服务器应将图像发送到连接的客户端 客户端应该收到图像 但是 现在客户端只收到图像的一部分 我什至无法打开它 服务器是使用 select 的多客户端 但这不是这里的问题 我认为问题出
  • PHP 命名空间和动态类名

    我在尝试 spl autoload 命名空间和动态类名时遇到了一件 奇怪 的事情 我使用 PHP 5 3 2 像这样调用自动加载 set include path get include path PATH SEPARATOR classe
  • 替代 (?!y) 但在单词之前

    如果我想排除 yapple 为什么我不能使用 my apple y 的替代品是什么before a word http jsfiddle net ksevlyar SbCCx 4 http jsfiddle net ksevelyar Sb
  • 从现有源创建android项目后缺少R类[重复]

    这个问题在这里已经有答案了 我下载了 SpriteMethodTest 的源代码 我想在 Eclipse 中构建它 所以我去了 文件 gt gt 新建 gt gt Android项目 gt gt 从现有源创建项目 gt gt SpriteM
  • Mllib依赖错误

    我正在尝试使用 Mllib 构建一个非常简单的 scala 独立应用程序 但在尝试构建程序时出现以下错误 Object Mllib is not a member of package org apache spark 然后 我意识到我必须
  • 验证参数是序列而不是字符串的 Pythonic 方法

    我有一个函数 它获取数据库表列表作为参数 并返回要在这些表上执行的命令字符串 例如 pg dump file tmp dump sql tables stack overflow port 5434 name europe 应该返回类似 p
  • 我应该在哪里放置可以显示 Flash 消息的 Laravel 4 辅助函数?

    我写了一个简单的display messages 将搜索的函数Session get errors 获取闪存数据并将其回显到屏幕上 我把这个功能放在哪里 在 Codeigniter 中 您有一个 helpers 文件夹 您可以在其中放置所有
  • 如何合并多个不包含在数组中的单独数组? [复制]

    这个问题在这里已经有答案了 如何合并存储在变量中但不包含在数组本身中的多个单独数组 变量 unique answer title包含这些单独的数组 但是 我试图将它们的所有元素组合成一个大的数字数组 当我使用array merge uniq
  • 在 C++ 中删除部分文件的最快方法

    我想知道在 C 中删除部分文件的最快方法是什么 我知道编写第二个文件并跳过你想要的部分的方法 但我认为当你处理大文件时速度很慢 数据库系统怎么样 它们如何如此快速地删除记录 数据库保留索引 元数据列出文件的哪些部分有效 哪些部分无效 要删除
  • 使用 FFT 计算频率时的错误值

    我得到了错误的频率 我不明白为什么我得到了错误的值 因为我已经按照 stackoverflow 后面的指令进行了计算 我用过FFThttp introcs cs princeton edu java 97data FFT java html
  • 将 bool 作为参数传递。 C++

    我想做的是下面的例子 我们首先定义一个布尔值 bool cat false 让我们在这里制作一本假书 bool setcat bool booltoset booltoset true return booltoset 现在让我们用 cat
  • 使用多个节点运行 slurm 脚本,使用 1 个任务启动作业步骤

    我正在尝试使用批处理脚本启动大量作业步骤 不同的步骤可以是完全不同的程序 并且每个步骤都需要一个 CPU 首先我尝试使用 multi prog论证srun 不幸的是 当以这种方式使用分配给我的工作的所有 CPU 时 性能会大幅下降 运行时间
  • 为什么junit中的assertEquals和assertSame对于同一个类的两个实例返回相同的结果?

    根据文件 assertEquals 断言两个对象相等 assertSame 断言两个对象引用同一个对象 所以我期待如果我有像下面这样的课程 class SomeClass then SomeClass someClass1 new Some