在 JUnit4 中断言两个列表相等

Asserting two lists are equal in JUnit4

我刚刚开始使用 JUnit4 编写单元测试。在实际的单元测试方法本身中,我创建了 'expected' 变量,并试图将其与我的代码进行比较。

我正在使用 JUnit4 中的 Assert.assertEquals 方法比较 ArrayLists,但在预期的末尾似乎有一个空格?

Expected: "java.util.ArrayList<[data]> "
Actual:   "java.util.ArrayList<[data]>"

任何解释或帮助将不胜感激。 TIA.

不保证不同 class 的列表产生相同的输出。您可以使用 list.toString().trim() 方法来切断 space(s),但这只是一种解决方法。

最好使用 list1.equals(list2) 或 Arrays.equals(array1,array2).

你可以使用CollectionUtils.isEqualCollection(list1, list2);

您也可以使用

Assert.assertArrayEquals(list1.toArray(new Integer[list1.size()]), list2.toArray(new Integer[list2.size()]));

对于上面的示例,我假定列表类型为整数,但它适用于任何数据类型。

如果您仍然遇到任何问题,请告诉我。

祝你好运!