2012-06-26 15 views
6

Chcę przypisać NiceMock z wartością zwracaną metody. NiceMock jest zmienną instancji.Używanie NiceMock jako zmiennej instancji z GoogleMock

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

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

Sposób ustalania to:

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

Kompilator generuje następujący błąd:

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

Jak mogę przypisać zmiennej instancji o wartości zwracanej metody oprawy?

Odpowiedz

8

W swojej TestClass trzeba mieć tylko wskaźnik do swojej mockobject:

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

Twój Urządzenie powinno instancji NiceMock i zwraca wskaźnik do mockobject.

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

NiceMock <> pochodzi od mockClass.So NiceMock <> należy stosować tylko wtedy, gdy instancji MockObject.