前言
很久以前,作者写的代码都没有测试用例,最多就是写个 demo 验证一下,毕竟不是专业出身,也没经过大公司的洗礼。
后来,参与到一些项目才知道有专门的测试,而且开发也要测试(开发自测、白盒测试、单元测试)。有兴趣的读者可以去了解一下 TDD(测试驱动开发)方法论。
关于c/c++的测试,作者先后用到过 cpptest、gtest、CMockery。但是,对于 Qt 这种带界面的程序该怎么测试呢?
Qt Test 是一个基于 Qt 的应用程序和库的单元测试框架。Qt Test 提供了单元测试框架中常见的所有功能,以及用于测试图形用户界面的扩展。Qt Test 旨在简化基于 Qt 的应用程序和库的单元测试编写。
官方介绍:https://doc.qt.io/qt-6/qtest-overview.html
不满
根据 Qt 官方的测试教程,编写一个最简单的测试用例 tst_qstring.cpp 如下所示:
// tst_qstring.cpp
#include <QtTest/QtTest>
// 测试套
class tst_QString: public QObject
{
Q_OBJECT
private slots:
void toUpper(); // 测试用例
};
void tst_QString::toUpper()
{
QString str = "Hello";
QVERIFY(str.toUpper() == "HELLO");
}
QTEST_MAIN(tst_QString)
#include "tst_qstring.moc"
QTEST_MAIN 宏定义如下,实际上是定义一个 main 函数:
#define QTEST_MAIN(TestObject) \
int main(int argc, char *argv[]) \
{
\
QTEST_MAIN_IMPL(TestObject) \
}
#define QTEST_MAIN_IMPL(TestObject) \
TESTLIB_SELFCOVERAGE_START(#TestObject) \
QT_PREPEND_NAMESPACE(QTest::Internal::callInitMain

最低0.47元/天 解锁文章
2443

被折叠的 条评论
为什么被折叠?



