QTest ссылка макет объекта вместо реального объекта - PullRequest
0 голосов
/ 17 февраля 2020

Я читал о библиотеке QTest и о том, как создавать макеты определенных классов, но я не понимаю, как должен работать трюк с компоновщиком, упомянутый в этом ответе.

У меня есть иерархия классов

Directory
-MySourceCode
--mainwindow.h
--databasecontroller.h
-Tests
--TestMainWindow
---databasecontroller.h
---tst_mainwindow

Теперь моя проблема заключается в том, что я пытаюсь проверить mainwindow.h (и, конечно, cpp) из MySourceCode, который включает в себя databasecontroller в MySourceCode. Файл .h включен через INCLUDEPATH в файл .pro.

Для целей тестирования я хочу, чтобы вместо этого использовался макет контроллера базы данных проекта Tests, поэтому мне не нужно подключаться к база данных. Макет предоставляет те же функции, что и контроллер базы данных источника.

Я получаю сообщение об ошибке, поскольку тестовый проект пытается включить контроллер базы данных исходного кода, который включает QSqlDatabase.

Как я могу сказать компилятору использовать контроллер базы данных, включенный в тесты, вместо другого?

...