Я читал о библиотеке QTest и о том, как создавать макеты определенных классов, но я не понимаю, как должен работать трюк с компоновщиком, упомянутый в этом ответе.
У меня есть иерархия классов
Directory
-MySourceCode
--mainwindow.h
--databasecontroller.h
-Tests
--TestMainWindow
---databasecontroller.h
---tst_mainwindow
Теперь моя проблема заключается в том, что я пытаюсь проверить mainwindow.h (и, конечно, cpp) из MySourceCode, который включает в себя databasecontroller в MySourceCode. Файл .h включен через INCLUDEPATH в файл .pro.
Для целей тестирования я хочу, чтобы вместо этого использовался макет контроллера базы данных проекта Tests, поэтому мне не нужно подключаться к база данных. Макет предоставляет те же функции, что и контроллер базы данных источника.
Я получаю сообщение об ошибке, поскольку тестовый проект пытается включить контроллер базы данных исходного кода, который включает QSqlDatabase.
Как я могу сказать компилятору использовать контроллер базы данных, включенный в тесты, вместо другого?