企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[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<QString>("string"); QTest::addColumn<QString>("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); } ```