欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用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);
使用QTestLib做单元测试
5.2 成功:QCOMPARE(m_function.Add(1,2), 3);
使用QTestLib做单元测试
6. 在test result中查看结果
使用QTestLib做单元测试