Java表示以下内容不相同:
java.lang.AssertionError: expected:<[[(7,UP), (2,RIGHT)], [(4,DOWN), (11,MIDDLE)],
[(9,RIGHT), (1,UP)]]>
but was:<[[(2,RIGHT), (7,UP)], [(11,MIDDLE), (4,DOWN)], [(1,UP), (9,RIGHT)]]>
(其中每个都是HashSet,每个子集是另一个HashSet)
答案 0 :(得分:2)
没有显示代码,所以这些只是猜测。
首先,如上所述,Set
的元素未实现.equals()
/ .hashCode()
。
其次,你在assertEquals()
上使用Collection
:当面对Collection
s作为参数时,许多测试框架(例如TestNG)将会成功,当且仅当两个集合具有相同的元素以相同的顺序。使用另一种方法,例如assertEqualsNoOrder-)
- 但是这里因嵌入Collection
而变得复杂。或者只使用assertTrue(coll1.equals(coll2))
。
答案 1 :(得分:1)
最有可能的问题是,由(7,UP)等表示的类型的equals()或hashCode()方法的行为与您期望的不同。