2016-03-02 55 views
4

假設我有這個類和類型管理器向前Base.h.聲明gmock和轉發聲明的類

#include <Base.h> 

class MockBase : public Base 
{ 
public: 
    MOCK_CONST_METHOD0(manager, const Manager&()); 
    ... 
}; 

我不會在我的測試中使用這種方法,所以我不希望包括經理級的定義與測試文件。

但我認爲,在編譯時gmock試圖在其膽量準備的錯誤信息和深層需要管理工具變數的地址,我有一個錯誤:

error C2027: use of undefined type 'Manager' \external\googlemock\gtest\include\gtest\gtest-printers.h 146 1

我能以某種方式避免包含文件的有關定義爲我不會使用的方法預先聲明類型?

回答

0

我已經通過定義PrintTo功能,使GTEST不會嘗試使用導致問題的TypeWithoutFormatter功能圍繞這個工作。這是不幸的,我不確定適當的修復會是什麼。

namespace Foo { void PrintTo(const Bar& x, ::std::ostream* os) { *os << "Bar " << &x; }}