IEmployeeServiceProxy* empSvcMock = m_Mocks.InterfaceMock<IEmployeeServiceProxy>();
m_EmpSvcMock.reset(empSvcMock); // shared_ptr because my class Client ctor expects a shared_ptr<IEmployeeServiceProxy>
Client client(m_EmpSvcMock);
如何防止 m_EmpSvcMock 被 HippoMock 内部破坏?将模拟传递给 shared_ptr 时,两者都会破坏模拟。
编辑 - 答案:
m_Mocks.ExpectCallDestructor(m_EmpSvcMock.get());
m_EmpSvcMock.reset();
最佳答案
在 Git 版本(来自 Assembla)中,您可以告诉它注册一个要调用的析构函数。额外的好处是,它会警告您之后使用 ZombieMockException 调用它的函数,因此如果您确实在某处泄漏了一个指针并且它被使用了,您会知道一个可读错误。
关于c++ - HippoMocks 坚持销毁 mock,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11772911/