我一直试图调试以下代码失败, 我注意到唯一导致程序崩溃的事情是“movies1”总是得到值0x0(就像它从未初始化),并且“d1”正在使用默认构造函数初始化,而不是“TestDirector”构造函数中指定的构造函数。 所有其他变量(int,char,string)都得到正确的值。
我会感激任何帮助。 感谢。
# include "gtest.h"
# include "Movie.h"
# include "Director.h"
class TestDirector: public ::testing::Test{
protected:
vector<Movie*>* movies1;
string name1;
int id1, age1;
char gender1;
string description1;
Director d1;
void SetUp(){
cout<<"Setting up"<<endl;
}
void TearDown(){
cout<<"Tearing down"<<endl;
}
public:
TestDirector():
movies1(new vector<Movie*>(0)),
name1("Director1 name"),
id1(1),
age1(1),
gender1('m'),
description1("Director 1 job description"),
d1(name1,
id1 ,
age1,
gender1,
movies1,
description1)
{
}
};
TEST_F(TestDirector, StringPrintMatch) {
ostringstream output1, output2;
d1.print(output1);
output2 << name1;
EXPECT_EQ(output1.str(),output2.str());
}