2012-06-26 9 views
6

メソッドの戻り値をNiceMockに割り当てる必要があります。 NiceMockはインスタンス変数です。GoogleMockでインスタンス変数としてNiceMockを使用する

class TestFileToOsg : public testing::Test 
{ 
public: 
    NiceMock<MockFileToOsg>* _mockFileToOsg; 
protected: 
virtual void SetUp(); 
}; 

void TestFileToOsg::SetUp() 
{ 
    _mockFileToOsg = FixtureFileToOsg::getMockFileToOsgWithValidConfig(); 
} 

治具方法は次のとおりです。

MockFileToOsg* FixtureFileToOsg::getMockFileToOsgWithValidConfig() 
{ 
    MockFileToOsg* fileToOsg = new MockFileToOsg(...); 
    return fileToOsg; 
} 

コンパイラは次のエラーがスローされます。

error: invalid conversion from ‘MockFileToOsg*’ to ‘testing::NiceMock<MockFileToOsg>*’ 

私はフィクスチャメソッドの戻り値でインスタンス変数を割り当てることができますどのように?あなたのTestClassをで

答えて

8

あなたは、あなたのmockobjectへのポインタを持っている必要があります。

class TestFileToOsg : public testing::Test 
{ 
public: 
    MockFileToOsg* _mockFileToOsg; 
protected: 
... 

あなたのフィクスチャはNiceMockをインスタンス化し、あなたのmockobjectへのポインタを返す必要があります。あなたがMockObjectをインスタンス化するとき

MockFileToOsg* FixtureFileToOsg::getMockFileToOsgWithValidConfig() 
{ 
    MockFileToOsg* fileToOsg = new NiceMock<MockFileToOsg>(...); 
    return fileToOsg; 
} 

NiceMock <は>のみを使用しなければならない> mockClass.So NiceMock <に由来します。

関連する問題