如何使用Boost单元测试框架测试Qt应用程序

How to test Qt application with Boost Unit Test framework

本文关键字:测试 Qt 应用程序 框架 单元测试 何使用 Boost      更新时间:2023-10-16

是否可以为Qt应用程序编写单元测试,例如QCoreApplication来测试它在任意时间内调用的函数? 假设我想测试我的类的成员函数,例如

void deleteConnectionFromList(QTcpSocket*); 

此函数应在其他函数之后调用,例如addNewSocket()

但是我应该把BOOST_CHECK_EQUAL((语句放在哪里呢?

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

我需要对Qt网络类使用boost单元测试(这需要事件循环(。我所做的就是这样。

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();
}