2015-11-02 61 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