6

メソッドの戻り値をNiceMockに割り当てたい。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>*’

フィクスチャメソッドの戻り値をインスタンス変数に割り当てるにはどうすればよいですか?

4

1 に答える 1

8

テストクラスでは、モックオブジェクトへのポインタのみが必要です。

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

フィクスチャはNiceMockをインスタンス化し、モックオブジェクトへのポインタを返す必要があります。

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

NiceMock <>はmockClassから派生しているため、NiceMock <>は、MockObjectをインスタンス化する場合にのみ使用する必要があります。

于 2012-06-26T12:14:03.193 に答える