void PlayListTester::testAddSong(){
cout << "- addSong()... " << flush;
PlayList pList("addSongTest.txt");
Song s1("Badge", "Cream", 1969);
Song s2("Godzilla", "Blue Oyster Cult", 1977);
Song s3("Behind Blue Eyes", "The Who", 1971);
pList.addSong(s1);
vector<Song> searchResult = pList.searchByArtist("Cream");
assert( searchResult.size() == 1 );
assert( searchResult[0].getTitle() == "Badge" );
assert( searchResult[0].getYear() == 1969 );
assert( searchResult[0].getArtist() == "Cream" );
cout << " 0 " << flush;
} Это метод тестирования, который я сделал для добавления объектов Song в вектор PlayList, но моя проблема в том, что он не выдает ошибку, а вместо этого код завершается при первом утверждении.Меня просто смущает, является ли мой тест ошибочным или сам мой метод.
vector<Song> PlayList::addSong(const Song& newSong){
vector<Song> v;
v.push_back(newSong);
return v;
Это метод, который я использовал.Это может показаться слишком простым, но теоретически, насколько я понимаю, это должно работать.
PlayList::PlayList(const string& fileName) {
// open a stream to the playlist file
ifstream fin( fileName.c_str() );
assert( fin.is_open() );
// read each song and append it to mySongs
Song s;
string separator;
while (true) {
s.readFrom(fin);
if ( !fin ) { break; }
getline(fin, separator);
mySongs.push_back(s);
}
// close the stream
fin.close();
} Вот мой конструктор PlayList, если это поможет.Сбой кода в размере assert.