**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
2天前关闭。
Improve this question
为什么我不能用相同的指针成功地调用我的存根函数。
下面是我存根函数:
class MockCNvMSensor:public CNvMSensor
{
public :
MOCK_METHOD0(GetEnableTPG,bool());
};
我是这么说的:
std::unique_ptr<MockCNvMSensor> mock_sen(new MockCNvMSensor);
test_InitModule->m_upSensor=std::unique_ptr<CNvMSensor>((CNvMSensor*)(mock_sen.get()));
EXPECT_CALL(*mock_sen.get(),GetEnableTPG()).WillRepeatedly(Return(true));
auto& test=test_InitModule->m_upSensor;
cout<<"test1: "<<test_InitModule->m_upSensor->GetEnableTPG()<<"\tp: "<<test_InitModule->m_upSensor.get()<<endl;
cout<<"test2: "<<test->GetEnableTPG()<<"\tp: "<<test.get()<<endl;
cout<<"test3: "<<mock_sen->GetEnableTPG()<<"\tp: "<<mock_sen.get()<<endl;
结果是:
test1: 0 p: 0x2a531e10
test2: 0 p: 0x2a531e10
test3: 1 p: 0x2a531e10
我所期望的结果都是真的。这个问题已经困扰我很久了。
1条答案
按热度按时间von4xj4u1#
我发现原因是GetEnableTPG是一个常量函数:
您应该使用
用const函数生成stub