Java 排序顺序断言失败
我有一个数字列表,我已经将其转换为int数组列表并对该数字进行排序。 问题是在元素[0]:5!=5预期[5],但发现[5]。我不明白问题出在哪里Java 排序顺序断言失败,java,arrays,selenium,sorting,assert,Java,Arrays,Selenium,Sorting,Assert,我有一个数字列表,我已经将其转换为int数组列表并对该数字进行排序。 问题是在元素[0]:5!=5预期[5],但发现[5]。我不明白问题出在哪里 ArrayList<String> obtainedList = new ArrayList<>(); List<WebElement> elementList = driver.findElements(By.xpath("//mat-table//mat-row/mat-cell[2]")); for (WebE
ArrayList<String> obtainedList = new ArrayList<>();
List<WebElement> elementList = driver.findElements(By.xpath("//mat-table//mat-row/mat-cell[2]"));
for (WebElement we : elementList) {
obtainedList.add(we.getText());
}
List<Integer> result = obtainedList.stream().map(Integer::valueOf).sorted() // sort the elements
.collect(Collectors.toList());
Collections.sort(result);
//Collections.reverse(result);
Reporter.log(AddRule + obtainedList + result + " Cloumn is display in Ascending order");
Add_Log.info(AddRule + obtainedList + result + " Cloumn is display in Ascending order");
Assert.assertEquals(result, obtainedList);
断言失败
java.lang.AssertionError: Lists differ at element [0]:
5 != 5 expected [5] but found [5]
如何按预期传递此断言,并且找到的值是相同的。
获取列表
是一个列表
,结果
是一个列表
它们从不相等
您必须在两个列表上使用相同的类型来检查是否相等
java.util.List
的方法执行以下操作:
比较指定对象与此列表是否相等。当且仅当指定的对象也是一个列表、两个列表的大小相同且两个列表中所有对应的元素对相等时,返回true。(如果(e1==null?e2==null:e1.equals(e2)),则两个元素e1和e2是相等的。)换句话说,如果两个列表以相同的顺序包含相同的元素,则将它们定义为相等。此定义确保equals方法在列表接口的不同实现中正常工作
在您的情况下,字符串
“5”
不等于整数5
,因此测试失败。如何将AcquiredList更改为整数您已经执行了AcquiredList.stream().map(Integer::valueOf).sorted().collect(Collector.toList())代码>只需删除sorted()
“5”(字符串)不等于5(整数)。
java.lang.AssertionError: Lists differ at element [0]:
5 != 5 expected [5] but found [5]