Я начал писать несколько тестов с модульной системой тестирования 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);
}