У меня проблема с UpCasting с Gmock
#include "gtest/gtest.h"
#include "gmock/gmock.h"
using namespace testing;
using namespace std;
class MyClass {
public:
MyClass(int xxx) {}
int call(int x) {
};
};
class MockMyClass : public MyClass {
public:
MockMyClass(int xxx) : MyClass(xxx) {};
MOCK_METHOD1(call, int(int));
};
TEST(TestMyClass, worksFine) {
MockMyClass mock(111);
EXPECT_CALL(mock, call(_))
.WillOnce(Return(2000)); // times(1) by default;
mock.call(23);
}
TEST(TestMyClass, doesntWork) {
MockMyClass mock(111);
MyClass &myClassNotMock = mock;
EXPECT_CALL(mock, call(_))
.WillOnce(Return(2000)); // times(1) by default;
myClassNotMock.call(23);
}
Я попытался использовать указатели, и похоже, что это та же проблема.Каждый раз, когда у меня есть ссылка на базовый объект (upcasting от mock), и я вызываю функцию, gmock не подхватит его.
Буду признателен за помощь