我设法在我的小程序上成功设置谷歌测试并创建一个夹具类。我尝试测试我的类Genealogy的整数“start_ind_id_array_”公共成员的向量的大小。 这是代码:
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);
}
第一个cout给了我期望的数字,3916。但是我的测试EXPECT_EQ失败了,因为我的数组的大小现在是0,而不是我预期的3916。
知道造成这种情况的原因是什么?
答案 0 :(得分:1)
你正在影响curGen。您可以在setup函数和类体中定义它。安装程序中的版本隐藏了正文中的版本:
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" ;
}