0

だから私はこの小さな問題を抱えています。モックしようとしているクラスがありますが、エラーが発生しています。問題のメソッドは、オブジェクト ポインターの std::list へのポインターを返しています。以下は、問題を再現するコードです。

#include <ByteBuffer.h>
. . .
class Foo {
public:
    std::list<ByteBuffer*>* getStuff() { return new std::list<ByteBuffer*>(); }
};

class MockFoo : public Foo {
public:
    MOCK_METHOD0(getStuff, std::list<ByteBuffer>*());
};

TEST_F(FooTest, shouldDoStuff) {
    MockFoo* mfoo = new MockFoo();
    std::list<ByteBuffer*>* plist = new std::list<ByteBuffer*>();
    EXPECT_CALL(*mfoo, getStuff()).WillOnce(Return(plist));
}

これをコンパイルすると、次のエラーが発生します。

/usr/local/include/gmock/gmock-actions.h:491: error: no matching function for call to ‘ImplicitCast_(std::list<zios::common::ByteBuffer*, std::allocator<zios::common::ByteBuffer*> >*&)’
make: *** [Debug/FooTest.o] Error 1

誰かがこれを引き起こしていることを教えてもらえますか? 私は何を間違っていますか?

4

2 に答える 2