【发布时间】:2022-01-06 03:38:54
【问题描述】:
我有以下一句话:
assertArrayEquals(Arrays.asList(df.sort("State", new SortDescending())).toArray(),Arrays.asList("[WV, WV, WI, WA, VA, TX, SD, PA, OH, ND, NC, NC, MB, MA, KS, FL, DE]").toArray());
函数的返回是一个List
[WV, WV, WI, WA, VA, TX, SD, PA, OH, ND, NC, NC, MB, MA, KS, FL, DE]
错误是:
Expected :java.util.LinkedList<[WV, WV, WI, WA, VA, TX, SD, PA, OH, ND, NC, NC, MB, MA, KS, FL, DE]>
Actual :java.lang.String<[WV, WV, WI, WA, VA, TX, SD, PA, OH, ND, NC, NC, MB, MA, KS, FL, DE]>
为什么我比较这两个列表时没有通过测试?
【问题讨论】:
-
我没有仔细检查,但
is可能暗示身份,即它们是同一个对象,这显然不是真的。试试assertEquals比较。 -
在 Java 中,不能用“==”比较两个不同的数组。同样,在 JUnit 中,您不能用“is()”比较两个数组。您必须使用assertArrayEquals。
-
Arrays.asList("[WV, WV, …, DE]")是一个仅包含一个元素的列表。你可能打算写Arrays.asList("WV", "WV", "WI", "WA", /*etc.*/, "DE")。代码中不应有[或]。 -
我编辑了这个问题...我尝试用 assertArrayEquals 来做,但它仍然出错...