这是我得到的错误跟踪:
java.lang.AssertionError: expected: java.lang.String<[{Song: title=Always artist=Blink 182}]> but was: java.util.ArrayList<[{Song: title=Always artist=Blink 182}]>
当我尝试在测试用例
中运行这段代码时assertEquals("[{Song: title=Always artist=Blink 182}]", p.getSongList());
p.getSongList
是一个返回和ArrayList<Song>
的方法。到目前为止,我只添加了一首歌曲,但我对如何将预期输出更改为java.util.ArrayList
而不是java.lang.String
感到困惑。
您正在比较ArrayList
实例与所需输出的字符串表示(即,如果您在输出上运行toString()
,您将获得的String
)。相反,您应该只构造您期望的实际输出。
你的问题不提供你的Song
类的代码,所以我猜它只是一个POJO:
Song expectedSong = new Song();
expectedSong.setTitle("Always");
expectedSong.setArtist("Blink 182");
ArrayList<Song> expectedList = new ArrayList<>(1);
expectedList.add(song);
assertEquals(expectedList, p.getSongList());