【发布时间】:2025-12-05 21:00:01
【问题描述】:
我正在尝试创建一个断言两个 ArrayList 相等的测试。运行测试时,我收到一个错误,即预期和实际之间存在一个差异:arraylist 末尾有一个空格。
问题不是由arraylist内部的任何东西引起的,问题是在arraylist关闭之后。据我所知,在 java 中没有用于此的修剪功能,也没有忽略空格的 junit 测试。
ArrayList<Quote> expected = new ArrayList<>();
Quote q1 = new Quote("Test Test", "This is a quote.");
Quote q2 = new Quote("Author Two", "Quote 2.");
Quote q3 = new Quote("Unknown", "This quote does not have an author.");
Quote q4 = new Quote("Author Three-three", "Quote 3.");
expected.add(q1); expected.add(q2); expected.add(q3); expected.add(q4);
这给我的是:java.util.ArrayList_
(我在空格处加了下划线)
我期望的是:java.util.ArrayList
这不包括空格。
我不知道为什么我会得到空格,也不知道如何摆脱它。任何帮助将不胜感激。
更多上下文,整个测试器文件
public class ImportQuotesTest {
BufferedReader reader;
@Before
public void setUp() throws Exception {
File file = new File("C:\\Users\\homba\\Documents\\QuotesProject\\src\\ImportQuotesTest.txt");
reader = new BufferedReader(new FileReader(file));
}
@Test
public void fillList() throws IOException {
ArrayList<Quote> actual = ImportQuotes.fillList(reader);
ArrayList<Quote> expected = new ArrayList<>();
Quote q1 = new Quote("Test Test", "This is a quote.");
Quote q2 = new Quote("Author Two", "Quote 2.");
Quote q3 = new Quote("Unknown", "This quote does not have an author.");
Quote q4 = new Quote("Author Three-three", "Quote 3.");
expected.add(q1); expected.add(q2); expected.add(q3); expected.add(q4);
Assert.assertEquals(expected,actual);
}
}```
【问题讨论】:
-
您没有显示实际打印或比较您的列表的代码。那看起来像什么?
-
我只是使用 Assert.assertEquals() 将两者作为对象进行比较,就像
java Assert.assertEquals(expected,actual); -
请edit问题并在那里添加所有相关代码。 Java 不会神奇地添加空格,因此您的测试中一定有一些东西。尝试提供minimal reproducible example。
-
...文件的内容是什么?您的问题可能在
ImportQuotes.fillList(reader)内部。
标签: java unit-testing arraylist junit