У меня довольно простая настройка для использования GMock (1.10.0). Я пытаюсь смоделировать экземпляр Generic, который является переменной-членом класса с именем Observation. Мне просто нужно проверить, что метод Generic calc_gravity () вызывается ровно один раз. Любая подсказка будет весьма цениться. (Пожалуйста, игнорируйте утечку.)
Я получаю это сообщение об ошибке:
нет соответствующей функции для вызова 'MockGeneric :: gmock_calc_gravity (const testing :: internal :: AnythingMatcher &)'
class Generic {
public:
virtual float calc_gravity(float x, float y) { return 9.81;} // Keep it simple.
virtual ~Generic() {}
};
class MockGeneric :public Generic {
public:
MOCK_METHOD(float, calc_gravity, (float, float));
};
class Observation {
private:
Generic* generic;
public:
Observation(Generic* genericPtr) : generic(genericPtr) {};
virtual void PositionConvert(float a, float b, float c) { cout << 5.0 + generic->calc_gravity();}
virtual ~Observation() {};
};
TEST(PositionConverter_Test, AMethodFromGenericInvokedOneTime) {
MockGeneric* mockGenericPtr = new MockGeneric();
using ::testing::_;
EXPECT_CALL(*mockGenericPtr, calc_gravity(_)).Times(1);
Observation o(mockGenericPtr);
o.PositionConvert(2.5, 2.5, 2.5);
}