我有一個帶私有Ctor,Dtor和一個getInstance()方法的Singleton類。使用GMOCK嘲笑一個擁有私有構造函數的類
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來模擬這個類。 有沒有辦法嘲笑它。
單身很難進行單元測試。最好的解決辦法是如果你試圖擺脫它。使它成爲一個普通的類,並將它傳遞給需要它的對象/函數。 –