Guten Morgen, Es scheint nun zu funktionieren. Da ich vorher eh schon ein Parameter Model an den Konstruktor übergeben hatte, war das für das Design weniger schlimm als gedacht dort auch den Mock zu übergeben - es hat den Code von außen nicht verändert, sondern nur im Testfall ergänzt. Nicht ganz die perfekte injection, aber zufriedenstellend. SocketTest.cpp // ... SocketParameter parameter = generateSocketParameter(); shared_ptr<MockPosixSocket> mockSocket = make_shared<MockPosixSocket>(); parameter.posixSocket = mockSocket; // here EXPECT_CALL(*mockSocket, create(_, _, _)).Times(AtLeast(1)); ON_CALL(*mockSocket, create(_, _, _)).WillByDefault(Return(0)); // ... Socket socket{parameter}; ASSERT_TRUE(socket.connect()); Beim Testen geht er nun auch auf die Mock Klasse. Vielen Dank auf jeden Fall für die Anregungen!