| 特性 | 详细描述 |
| 轻量级 | QTestlib 只包含 6000行代码和 60个导出符号。 |
| 自包含 | 对于非GUI测 试,QTestlib只需要Qt核心库的几 个符号。 |
| 快速测试 | QTestlib不需要特殊的测试执行程序,不需要为测试而进行特殊的注册。 |
| 数据驱动测试 | 一个测试程序可以在不同的测试数据集上执行多次。 |
| 基本的GUI测 试 | QTestlib提供了模拟鼠标和键盘事件的功能。 |
| IDE友好 | QTestlib的输出信息可以被Visual Studio和KDevelop解析。 |
| 线程安全 | 错误报告是线程安全的、原子性的。 |
| 类型安全 | 对模板进行了扩展使用,防止由隐式类型转换引起的错误。 |
| 易扩展 | 用户自定义类型可以容易地加入到测试数据和测试输出中。 |
使用的相关宏:
QVERIFY(condition) //condition为真,则程序继续运行,否则测试失败,程序终止运行 QVERIFY2(statement, description) //statement为佳,输出description
initTestCase() //在第一个测试函数运行前调用 cleanupTestCase() //在终于第一个测试函数运行后调用 init() //在每个测试函数运行前被调用 cleanup() //在每个测试函数运行后调用
初始化测试数据一般先有测试函数_data()进行初始化数据
> void QTest::addColumn(const char *name, T *dummy = 0) > QTestData &QTest::newRow(const char *dataTag) //建立要测试的数据列 QTest::addColumn<QString>("aString"); QTest::addColumn<int>("expected"); //添加数据行 QTest::newRow("positive value") << "42" << 42; QTest::newRow("negative value") << "-42" << -42; QTest::newRow("zero") << "0" << 0;
而后在测试函数(槽)中使用
//测试数据获取 > QFETCH(type, name) QFETCH(QString, aString); QFETCH(int, expected);
//测试数据比较 > QCOMPARE(actual, expected); //actual, expected值相等,就继续执行
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216830.html原文链接:https://javaforall.net
