Тестирование с помощью модуля Qt QTestLib

Я начал писать некоторые тесты с системой модульного тестирования Qt.

Как вы обычно организуете тесты? Это один тестовый класс на один класс модуля, или вы тестируете весь модуль одним тестовым классом? Qt docs предлагает следовать прежней стратегии.

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

Проблема в том, что предложенный Qt способ запуска тестов включалQTEST_MAIN макрос:

QTEST_MAIN(TestClass)
#include "test_class.moc"

и в конечном итоге одна тестовая программа способна протестировать только один тестовый класс. И это отстойно - создавать тестовые проекты для каждого класса в модуле.

Конечно, можно взглянуть наQTEST_MAIN макрос, переписать его и запустить другие тестовые классы. Но есть ли что-то, что работает из коробки?

Пока я делаю это вручную:

#include "one.h"
#include "two.h"

int main(int argc, char *argv[]) 
{ 
    QCoreApplication app(argc, argv); 
    TestOne one;
    QTest::qExec(&one, argc, argv);
    TestOne two;
    QTest::qExec(&two, argc, argv);
}

Ответы на вопрос(4)

Ваш ответ на вопрос