测试不规范,亲人两行泪
在编程过程中,我们往往需要针对模块进行测试,特别是针对某些边界输入条件,从而保证程序的Robustness,本文将针对Qt下进行单元测试的过程进行讲解
编写测试
假设我们需要针对QString进行单元测试,首先,我们需要一个类包含测试函数,该类继承自QObject
1 |
|
测试函数如下:
1 | void TestQString::toUpper() |
如果需要更详细的testlog,可以使用QCOMPARE()
1 | void TestQString::toUpper() |
之后加入这两句话进行测试:
1 | QTEST_MAIN(TestQString) |
执行测试
假设我们的test文件在一个空文件夹中被保存为testqstring.cpp
,那么我们可以使用qmake创建并产生一个makefile
1 | /myTestDirectory$ qmake -project "QT += testlib" |
注意,在测试过程中必须要把被测试文件放在和测试文件一个目录下,否则会造成:[Qt undefined reference to vtable,这个问题是由于MOC文件需要知道被测试文件所在位置,但是如果不在一个文件夹下,.pro文件不会自动把被测试文件添加进来,这里还需要改进。