mar*_*a90 6 c++ unit-testing googlemock
我想为NiceMock分配一个方法的返回值.NiceMock是一个实例变量.
class TestFileToOsg : public testing::Test
{
public:
NiceMock<MockFileToOsg>* _mockFileToOsg;
protected:
virtual void SetUp();
};
void TestFileToOsg::SetUp()
{
_mockFileToOsg = FixtureFileToOsg::getMockFileToOsgWithValidConfig();
}
Run Code Online (Sandbox Code Playgroud)
夹具方法是:
MockFileToOsg* FixtureFileToOsg::getMockFileToOsgWithValidConfig()
{
MockFileToOsg* fileToOsg = new MockFileToOsg(...);
return fileToOsg;
}
Run Code Online (Sandbox Code Playgroud)
编译器抛出以下错误:
error: invalid conversion from ‘MockFileToOsg*’ to ‘testing::NiceMock<MockFileToOsg>*’
Run Code Online (Sandbox Code Playgroud)
如何使用fixture方法的返回值分配实例变量?
在你的测试类中,你应该只有一个指向你的模拟对象的指针:
class TestFileToOsg : public testing::Test
{
public:
MockFileToOsg* _mockFileToOsg;
protected:
...
Run Code Online (Sandbox Code Playgroud)
你的fixture应该实例化一个NiceMock并返回一个指向你的mockobject的指针.
MockFileToOsg* FixtureFileToOsg::getMockFileToOsgWithValidConfig()
{
MockFileToOsg* fileToOsg = new NiceMock<MockFileToOsg>(...);
return fileToOsg;
}
Run Code Online (Sandbox Code Playgroud)
NiceMock <>派生自mockClass.So NiceMock <>只能在实例化MockObject时使用.