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

无论顺序如何,Assert数组都是相等的[重复]

苏昊英
2023-03-14

目前正在编写一个测试用例,其中我需要比较2列表。列表的顺序可能不同。列表中包含的对象永远不会有相同的引用。因此,我需要对列表元素调用.equals()。列表中的对象还有list字段。这里同样适用:列表的顺序可能不同。

示例(伪代码):

// Note that the elements in the list do NOT have the same reference, they are a deep copy of each other

actual = [obj1:{someField: "val", rows: [row1, row2]}, // The sub lists are important!
          obj2:{someField: "val2", children: [child1, child2]}];

expected = [obj2:{someField: "val2", children: [child2, child1]}, 
            obj1:{someField: "val", rows: [row2, row1]}];

我如何断言这些列表是相等的(上面示例中的列表在我的测试中应该是相等的)?

共有1个答案

姚棋
2023-03-14

您可以创建它的数组列表,并使用Comparator接口实现自定义比较器。

API:https://docs.oracle.com/javase/8/docs/api/java/util/comparator.html

 类似资料:
  • 问题内容: 我有两个数组,可以这样说: //这些数组应该相等 我想以“最干净”的方式检查他们的平等。 我尝试使用,但得到的答案是错误的。我猜想这种方法关心元素的顺序,我不想这样。 您能告诉我如何以一种不错的方式做到这一点吗? 问题答案: Arrays.sort(s1); Arrays.sort(s2); Arrays.equals(s1,s2); 如果您不想修改原始数组 Arrays.sort()

  • 问题内容: 我的作业问题就是这样 编写一个程序,使用以下命令以相反的顺序打印char数组中的字母 例如,如果数组包含{‘c’,’s’,’c’,‘2’,‘6’,‘1’},则输出应为“ 162csc”。 我尝试过,但是我不知道这意味着什么 我这样做了,但是在主方法中调用方法“ printReverse”存在问题 问题答案: 我相信您所写的是您必须创建的方法的签名。 您将必须迭代数组并向后打印其中包含的

  • 的Javadoc表示(强调是我的): 此操作的行为显式不确定。对于并行流管道,此操作不能保证尊重流的相遇顺序,因为这样做会牺牲并行性的好处。对于任何给定的元素,操作可以在库选择的任何时间和线程中执行。如果操作访问共享状态,则它负责提供所需的同步。 同样的文本也出现在Java9早期访问Javadoc中。 如果forEach不保留遭遇顺序,则会引入bug。在报告针对NetBeans的bug之前,我想知

  • 问题内容: PHP将所有数组视为关联数组,因此没有任何内置函数。谁能推荐一种相当有效的方法来检查数组是否仅包含数字键? 基本上,我希望能够区分以下两者: 和这个: 问题答案: 您问了两个不完全相同的问题: 首先,如何确定数组是否只有数字键 其次,如何确定数组是否具有从0开始的 连续 数字键 考虑您实际上需要哪种行为。(这也许可以满足您的目的。) 对于第二个问题(检查数组是否为零索引和顺序索引),可

  • 我有2个输入 预期输出: 我无法解决它。所以,请不要问我的解决方案。请用java帮助解决。

  • 我有两个类型的(自制类)。 我想比较一下这两张单子,看看它们的内容是否相同,但顺序不重要。