抽象クラスをモックしようとしていますが、GMockヘッダーの内部からエラーをコンパイルしています。私は実際のコードを共有することはできませんが、ほぼ同じです。 mockingは正常に動作していましたが、オブジェクトを参照するために "DoStuff"関数を変更しなければなりませんでした。それ以来、それはコンパイルされません。エラーは次のようなものです* GMockは "Element"とlong long *を比較できません。GMockはコンパイルされません。ユーザー型参照引数付きの仮想関数
"C++ code"
using ::testing::NiceMock;
class Element{};
class Foo
{
public:
virtual void DoStuff(Element&) = 0;
};
class MockFoo : public Foo
{
public:
MockFoo() {};
MOCK_METHOD1(DoStuff, void(Element&));
};
TEST(example, test)
{
NiceMock<MockFoo> mf;
Element element{};
EXPECT_CALL(mf, DoStuff(element)).Times(1);
mf.DoStuff(element);
}
クイック返信をいただきありがとうございます。正確な「要素」は必要ありません。関数が呼び出されているかどうかをテストする必要があります。しかし、もう一度感謝、私はあなたの提案を試みるつもりです。 –
'testing :: _'というマッチャーは、 'EXPECT_CALL(mf、DoStuff(_));が必要な場合に使用します; – PiotrNycz
ありがとうございました! –