2015-11-02 73 views

回答

9

对比List不需要单独的方法。两个列表可以通过org.testng.Assert#assertEquals(Object, Object)进行比较。

如果两个列表ab是非null,呼叫Assert.assertEquals(a, b)意味着a.equals(b)随后将被调用。

而且java.util.List#equals是你所需要的,如在Javadoc描述:

比较指定对象与此列表是否相等。返回 当且仅当指定的对象也是一个列表时,两个列表 具有相同的大小,并且两个 列表中的所有相应元素对都相等。 (如果(e1 == null? e2 == null:e1.equals(e2)),两个元素e1和e2是相等的。)换句话说,两个元素定义为 如果它们包含相同元素相同的顺序。这个 定义确保了equals方法在不同的List接口实现中正常工作。

+0

必须检查,但听起来是正确的。 JUnit和testng之间的assertEquals是否有区别? – jan

+0

实际上,它取决于:https://github.com/cbeust/testng/pull/790,但它应该在大多数时间工作。 – juherr

+0

只是一个小记录,不应该这两个列表是顺序依赖的? – nullpointer

1

如果你不反对增加一个新的依赖关系,我建议看看AssertJ它提供了很多关于集合的真棒断言。

+0

这应该是一个评论,而不是一个答案。 OP明确要求采用testng解决方案。 – testerjoe2