2013-12-09 2 views
0

Мне удалось успешно настроить тест Google на мою маленькую программу и создать класс приборов. Я пытаюсь проверить размер вектора целочисленного «start_ind_id_array_» публичного участника моего класса Generalogy. Вот код:Google test fixture: прохождение размера члена класса

class BuildgenTest : public ::testing::Test { 
protected: 

    virtual void SetUp(){ 
    const string pedigree_fileName("../input_files/genealogies.txt"); 
    const string start_filename("../input_files/start"); 
    Genealogy curGen; 
    curGen.ReadPedigree(pedigree_fileName.c_str()); 
    curGen.SetStartIndividual(start_filename.c_str()); 

    cout << curGen.start_ind_id_array_.size() <<"\n" ; 
    } 
    Genealogy curGen; 

}; 
TEST_F(BuildgenTest,veriftest){ 

    int number_of_starting_individuals = curGen.start_ind_id_array_.size(); 

    EXPECT_EQ(number_of_starting_individuals,3916); 

} 

Первый соиЬ дает мне номер, я ожидал, 3916. Но тогда мой тест EXPECT_EQ не потому, что размер моего массива в настоящее время 0, а не мой ожидал 3916.

Любая идея, что вызывает это?

ответ

1

Вы затеняете curGen. Вы определяете его в настройках и в классе. Версия в настройке - это затенение версии в корпусе:

virtual void SetUp(){ 
const string pedigree_fileName("../input_files/genealogies.txt"); 
const string start_filename("../input_files/start"); 

Genealogy curGen; 
^^^^^^^^^^^^^^^^^ 

curGen.ReadPedigree(pedigree_fileName.c_str()); 
curGen.SetStartIndividual(start_filename.c_str()); 

cout << curGen.start_ind_id_array_.size() <<"\n" ; 
} 
+0

Спасибо! Я удаляю версию в настройке, и теперь она работает нормально. Я должен был подумать об этом. Приветствия. – ElCascador

Смежные вопросы