当前位置: 首页 > 知识库问答 >
问题:

排序列表上的AssertEquals总是返回false

蔺弘
2023-03-14

我正试图编写一个单元测试来测试两个列表的排序。我所做的是调用自定义排序比较器,然后将原始列表与排序列表进行比较。然后,我使用assertEquals来测试排序的列表和原始列表是否匹配。

假设我有一个简单的模型...病人。

List<Patient> unOrdered = new ArrayList<Patient>();
List<Patient> ordered = new ArrayList<Patient>();
ordered.add(new Patient("Chris Bacon", "45"));
ordered.add(new Patient("Charles Steak", "82"));
ordered.add(new Patient("Matt Pork", "32"));
unOrdered.add(new Patient("Matt Pork", "32"));
unOrdered.add(new Patient("Chris Bacon", "45"));
unOrdered.add(new Patient("Charles Steak", "82"));
assertEquals(ordered, unOrdered);

控制台以相同的顺序输出这些列表,但assertEquals返回false。我甚至尝试以相同的顺序创建两个完全相同的列表,并尝试assertEquals,但它仍然返回false。

我不是Java专家,但从我在网上读到的文档来看,assertEquals不仅检查列表中对象的相等性,还检查对象的顺序。所以...为什么总是返回false?是assertEquals不能处理更复杂的对象还是我做错了什么?

共有1个答案

林龙野
2023-03-14

为了将两个列表视为相等,一个列表的每个元素必须与另一个列表的相应元素进行比较,因此这个测试完全依赖于patientequals方法的实现。

 类似资料:
  • 问题内容: 让 假设我要对列表中每个列表的索引元素求和,例如在矩阵列中添加数字以获得单个列表。我假设数据中的所有列表的长度均相等。 如何遍历列表列表而不会出现索引超出范围错误?也许lambda?谢谢! 问题答案: 您可以尝试以下方法: 这里使用的组合和解压的列表,然后根据自己的索引压缩的项目。然后,您可以使用列表推导来遍历相似索引的组,对其进行求和并返回其“原始”位置。 为了更清楚一点,下面是迭代

  • 问题内容: 我需要对列表进行排序,然后返回带有列表中已排序项目索引的列表。例如,如果我要排序的列表是,则需要返回。 这个问题以字节为单位发布,但我认为我会在这里重新发布。 http://bytes.com/topic/python/answers/44513-sorting-list-then-return-index- sorted-item 我的具体需求是根据对象的属性对对象列表进行排序。然后

  • 我有一个,我希望在其中返回字符串值的列表,但按int键的升序/降序排序。如果返回的是我也希望排序的迭代项,例如返回或列表,那么这将很容易,但是我想不出一种方法来做到这一点,除了在使用遍历整个映射并插入值以从映射键索引(如下面所示)之后手动创建一个列表,然后在该列表中嵌套另一个以消除任何空值之外。 请告诉我有更好更有效的方法吗?任何帮助都是非常感谢的!

  • 问题内容: 我认为那应该是一个非常简单的问题。但是不知何故我无法在Google中找到答案。 假设我有2个字符串列表。第一个包含 “字符串A”和“字符串B” ,第二个包含 “字符串B”和“字符串A” (注意顺序不同)。我想用 JUnit 测试它们,以检查它们是否包含 完全相同的 字符串。 是否有任何断言可以检查忽略顺序的字符串是否相等?对于给定的示例org.junit.Assert.assertEq

  • 我的代码是用Python3编写的,目的是打印回文。它应该遍历2个3位数字的所有回文积,如下所示: 注意注释掉的打印。当这还在的时候,本该打印出来的回文都出来了。当我运行代码时,没有语句,控制台只打印出“none”。 据我所知,我的逻辑是正确的,那么为什么会发生这种情况呢?编辑:同样,当我对我的列表进行逆序排序时,99999排在第一位。我认为这是因为python看着连续的9并认为它是最大的。但是,有

  • 我试图访问MyModelClass上的getter方法,但我的代码返回