Qt单元测试框架

发表于:2013-7-23 11:38

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:newsyoung1    来源:51Testing软件测试网采编

  QTestLib 框架提供了一个简单易用的单元测试框架,需要在工程文件中添加Qt+=testlib。先看一个简单的例子:

#include <QtTest/QtTest>
class TestQString: public QObject
{
  Q_OBJECT
private slots:
  // 每个private slot函数都是会被自动调用的测试函数
  void testToLower();
  // 以“_data”结尾的函数向对应的测试函数提供测试数据
  void testToLower_data();
};
void TestQString::testToLower()
{
  // 获取测试数据
  QFETCH(QString, string);
  QFETCH(QString, result);
  // 如果输入的两个参数不同,则会被认为测试失败
  QCOMPARE(string.toLower(), result);
}
void TestQString::testToLower_data()
{
  // 添加数据列
  QTest::addColumn<QString>("string");
  QTest::addColumn<QString>("result");
  // 添加测试数据
  QTest::newRow("lower") << "hello" << "hello";
  QTest::newRow("mixed") << "HeLlO" << "hello";
  QTest::newRow("upper") << "HELLO" << "hello";
}
// 用于构建可执行的测试程序
QTEST_MAIN(TestQString)
#include "testqstring.moc"

  此外,Qt还提供了以下四个会被自动调用的private slot:

  initTestCase():在测试开始前被调用

  cleanupTestCase():在测试结束后被调用

  init():每个测试函数执行前被调用

  cleanup():每个测试函数执行后被调用

  测试完成后输出的结果如下所示:

********* Start testing of TestQString *********
Config: Using QTest library 4.5.3, Qt 4.5.3
PASS   : TestQString::initTestCase()
PASS   : TestQString::testToLower()
PASS   : TestQString::cleanupTestCase()
Totals: 3 passed, 0 failed, 0 skipped
********* Finished testing of TestQString *********

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号