Как протестировать приложение Qt с помощью Boost Unit Test Framework - PullRequest
0 голосов
/ 26 мая 2018

Можно ли написать модульные тесты для приложения Qt, например, QCoreApplication, чтобы проверить его функции, которые вызываются в произвольное время?Давайте предположим, что я хочу протестировать функцию-член моего класса, такую ​​как

void deleteConnectionFromList(QTcpSocket*); 

Эта функция должна вызываться после других функций, таких как addNewSocket()

Но куда мне поместить оператор BOOST_CHECK_EQUAL ()?

BOOST_AUTO_TEST_CASE( test )
{

  int argc{};
  QCoreApplication app(argc, nullptr);
  Server server;
  app.exec();

}

1 Ответ

0 голосов
/ 04 ноября 2018

Мне нужно было использовать тестовый модуль наддува с классами Qt Network (который требовал цикл обработки событий).Я сделал что-то в этом роде.

BOOST_AUTO_TEST_CASE(createServerNetwork)
{
QCoreApplication app(boost::unit_test::framework::master_test_suite().argc,
                     boost::unit_test::framework::master_test_suite().argv);

std::thread thread_server( [&](void)
{
[...]//your code here
QCoreApplication::quit();
});

BOOST_CHECK(app.exec() == 0);
thread_server.join();
}
...