如何使用Boost Unit Test框架测试Qt应用程序

时间:2018-05-26 19:52:59

标签: c++ qt unit-testing boost boost-test

是否可以为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 :(得分:0)

我需要对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();
}