【问题标题】:How to test Qt application with Boost Unit Test framework如何使用 Boost Unit Test 框架测试 Qt 应用程序
【发布时间】:2018-05-26 19:52:58
【问题描述】:

是否可以为 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 Test 比任何其他带有Qt 的测试框架都要方便一千倍。
  • 我不知道 BOOST 自动测试框架,但我怀疑你应该在测试核心中实例化应用程序,它应该在设置中完成。

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


【解决方案1】:

我需要对 Qt Network 类(需要事件循环)使用 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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多