вы могли бы сначала изменить ваш Class A
на синглтон, например:
class A
{
A* Instance();
virtual int Method1(int a, int b){return a+b;}
static A* A_instance;
A(){}
};
A::A_instance = NULL;
, а затем высмеять Class A
:
#include <gmock/gmock.h>
class MockA : public A
{
public:
MOCK_METHOD2(Method1, int(int a, int b));
};
и изменить A().
на A::Instance()->
после;затем вы можете использовать следующие методы, чтобы Class B
вызывать метод mock во время выполнения:
MockA mock;
A::A_instance = &mock;
EXPECT_CALL(mock, Method(_, _))
......(you can decide the times and return values of the mock method)
для получения дополнительной информации, вы можете прочитать книгу рецептов gmock по адресу http://code.google.com/p/googlemock/wiki/CookBook