测试类/函数
最后更新于:2022-04-02 02:09:54
[TOC]
## 测试类
- 测试类需要从QObject类继承
- 类中需要加入一个或者多个私有槽
-每一个私有槽都是一个测试函数
但有4种私有槽不能作为测试函数,它们由测试框架执行
1. initTestCase():在第一个测试函数执行前调用。
2. cleanupTestCase():在最后一个测试函数执行后调用。
3. init():在每一个测试函数执行前调用。
3. cleanup():在每一个测试函数执行后调用。
## 测试函数
对于一个要测试的目标函数,需要使用两个函数进行测试
1. testFunctionName_data:数据提供,在函数体中写入测试数据。
2. testFunctionName:测试的实体,读取testFunctionName_data函数中的数据表,并逐行进行测试。如果测试结果与数据表中的结果不同,则认为测试失败
## 测试数据构建
数据由QTest::addColumn (name)和QTest::newRow(name) << input << result来构建一个数据表,其中的列可以被获取,然后将表中对应的数据按行测试,并与表中的结果列进行对比。
示例
```
void TestQString::toUpper_data()
{
QTest::addColumn("string");
QTest::addColumn("result");
QTest::newRow("all lower") << "hello" << "HELLO";
QTest::newRow("mixed") << "Hello" << "HELLO";
QTest::newRow("all upper") << "HELLO" << "HELLO";
}
void TestQString::toUpper()
{
QFETCH(QString, string);
QFETCH(QString, result);
QCOMPARE(string.toUpper(), result);
}
```
';