2013-06-06 67 views

回答

0

谷歌模擬調用C風格的功能"free functions."他們可以先創建一個接口,它在C只是一個抽象類++被嘲笑。

他們給出的例子:

class FileInterface { 
public: 
    ... 
    virtual bool Open(const char* path, const char* mode) = 0; 
}; 

class File : public FileInterface { 
public: 
    ... 
    virtual bool Open(const char* path, const char* mode) { 
    return OpenFile(path, mode); 
    } 
}; 

而不是直接調用Open(...),使用FileInterface的實例,可以嘲笑在測試中使用。


嘲笑可以像存根使用;只是不要設置對象的任何期望...只使用ON_CALL方法。

+0

是的,但是我怎樣才能做到這一點在C功能超過700線長..它不只是做一件事...它幾乎所有... 我有點害怕... –

+0

我很困惑你的意思。如果您可以提供更多詳細信息,請更新您的問題。函數的長度不影響其被模擬的能力。 –