使用QTestLib做单元测试
程序员文章站
2024-01-23 11:07:16
...
1 新建一个要测试的类
Class可以是任何种类的类,加入我们想要单元测试的方法int Add(int a, int b)。
#ifndef FUNCTION_H
#define FUNCTION_H
class Function
{
public:
Function();
int Add(int a, int b);
};
#endif // FUNCTION_H
#include "Function.h"
Function::Function()
{
}
int Function::Add(int a, int b)
{
return a+b;
}
2 添加testlib
在.pro文件中添加,QT += testlib。
QT += testlib
3 创建测试类
3.1 类应该继承于QObject,不要忘记关键词: Q_OBJECT
3.2 添加私有 slots,必须为私有的
3.3 添加要测试类的实例
3.4 用QCOMPARE做比较,最好一个函数一个
//! [0]
#include <QtTest/QtTest>
#include "Function.h"
class TestQString: public QObject
{
Q_OBJECT
private slots:
void Add();
private:
Function m_function;
};
//! [0]
//! [1]
void TestQString::Add()
{
QString str = "Hello";
// QCOMPARE(str.toUpper(), QString("HELLO"));
QCOMPARE(m_function.Add(1,2), 3);
}
//! [1]
4 添加main()
QTEST_MAIN(TestQString)
#include “testqstring.moc”
5 运行结果
5.1 失败:QCOMPARE(m_function.Add(1,2), 4);
5.2 成功:QCOMPARE(m_function.Add(1,2), 3);
6. 在test result中查看结果
推荐阅读
-
使用QTestLib做单元测试
-
SpringBoot使用H2内存数据库单元测试的代码示例
-
MAC系统如何使用Spotlight做精确搜索以节省时间
-
使用过期域名做网站SEO优化
-
Java单元测试工具 Junit4入门使用教程
-
linux下 PHP 7 Laravel 使用unique做validation的时候生成SQL语句有问题
-
剪映app怎么使用创作脚本做视频特效?
-
使用Nginx反向代理最前端,多个Docker容器做后端。将多台服务器整合到一台服务器上
-
如何使用联合主键做外键
-
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证,basicauthheader