Google Mock を使用して抽象クラスをテストしようとしています。forDummiesガイドに従って、クラスのモックを作成しました。
AbstractFoo.h
class AbstractFoo {
public:
virtual void setSize(int w, int h) = 0;
void setSize(const QSize& s); // implemented as calling above function
}
MockFoo.h
#include "gmock/gmock.h"
class MockFoo : public AbstractFoo {
public:
MOCK_METHOD2(setSize, void(int w, int h));
}
FooTest.cpp
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include "MockFoo.h"
TEST(AbstractFoo, MethodSetSize) {
MockFoo foo;
EXPECT_CALL(foo, setSize(5, 5)).Times(1);
foo.setSize(QSize(5, 5)); // this line produces compiler error
}
マークされた行は、次のコンパイラ エラーを生成します。
C2660: 'MockFoo::setSize': 関数は引数を 1 つ取りません
私の理解では、MockFoo
extendsであるため、メソッドAbstractFoo
を継承する必要があります。setSize(QSize)
ただし、そうではないようです。どうすればこれを修正できますか?
コードの不正確さのために編集