Segmentation fault when calling expectation on a function that return a pointer.
data.h
struct Data
{
int age;
Data();
~Data(){}
};
master.h
class Master
{
private:
Data *m_data;
public:
Data* getData() const {return m_data;}
};
master.cc
Master::Master()
{
Data *m_data = new Data();
}
user.cc <<------------CLASS TO BE TESTED
...
Master masterRef;
masterRef.getData()->age = 10; <---- How set call expectation on this line?
masterMock.h
class MasterMock
{
MOCK_CONST_METHOD0(getData(), Data*());
};
testUser.cc
...
TEST_F(TestUser, test1)
{
MasterMock masterMockRef;
EXPECT_CALL(masterMockRef, getData()); <---- HERE IT CRASHES with segmentation fault.
}