I am learning mocking and using googletest I created MockServer class that should mock the abstract class IServer:
class IServer { virtual void writeData(QString buffer) = 0; virtual QByteArray readData() = 0; protected: virtual ~IServer() = default; }; class MockServer: public:: testing:: Test, public IServer { MOCK_METHOD(void, writeData, (QString buffer), (override)); MOCK_METHOD(QByteArray, readData, (), (override)); }; And now want to test the other class that uses it, however, I cannot initialize MockServer because it is an abstract class. How to solve this?
TEST_F(Serv_test, start) { ?? MockServer mockServer; // <- how to declare it? EXPECT_CALL(mockServer, writeData(testing::_)).Times(1); EXPECT_CALL(mockServer, readData()).Return("testing"); Car car (nullptr, mockServer); }