【发布时间】:2013-07-10 07:46:16
【问题描述】:
我有一个带有私有Ctor、Dtor 和一个getInstance() 方法的单例类。
class Single {
public:
virtual void* alloc(size_t size, uint line){}
Single* getInstance() {
if(!m_Instance)
m_Instance = __OSAL_NEW OSAL_Memory;
return m_Instance;
}
private:
Single();
~Single();
static Single* m_Instance;
};
#define Allocate(size_t size)\
(Single::getInstance())->alloc(size, __LINE__)
我需要使用 GMOCK 模拟这个类。 有什么办法可以模拟它。
【问题讨论】:
-
单例最多很难进行单元测试。最好的解决方案是如果你试图摆脱它。让它成为一个普通的类,并将它传递给需要它的对象/函数。
标签: c++ mocking singleton gmock private-constructor