2012-06-26 17 views
6

Tôi muốn gán một NiceMock với giá trị trả lại của một phương thức. NiceMock là một biến mẫu.Sử dụng NiceMock làm biến mẫu với GoogleMock

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

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

Phương pháp cố định là:

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

Trình biên dịch ném lỗi sau:

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

Làm thế nào tôi có thể gán biến dụ với giá trị trả về của phương pháp cố định?

Trả lời

8

Trong TestClass của bạn, bạn chỉ nên có một con trỏ đến mockobject của bạn:

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

cố của bạn nên tạo một NiceMock và trả về một con trỏ đến mockobject của bạn.

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

Các NiceMock <> xuất phát từ mockClass.So NiceMock <> chỉ được sử dụng khi bạn khởi tạo một MockObject.

Các vấn đề liên quan