![20f5f2494c236f4e6cd1fb339639d238.png](https://i-blog.csdnimg.cn/blog_migrate/14efe8d33d7e36438a60e766477da1c3.jpeg)
一、新建子目录项目
在QT点击菜单 文件-新建文件或项目-其他项目-子目录项目:
![8477c806ae75a5fa395bde70152f9aa5.png](https://i-blog.csdnimg.cn/blog_migrate/b18e6154ee2c74bbe93ee8c0dec9c339.jpeg)
![1ba2aec40484c46096b8061127330b0a.png](https://i-blog.csdnimg.cn/blog_migrate/af81e1fbc3c1ec6e9e76404633e7dc03.jpeg)
二、新建控制台项目
然后继续建一个子项目:
![336085f9349354e188547ee14df58177.png](https://i-blog.csdnimg.cn/blog_migrate/d23a068ef981ce93dfeea35122ed6c30.jpeg)
![98ec6baaea95bc49de8d23def97ab064.png](https://i-blog.csdnimg.cn/blog_migrate/5ffae96d84a23480dc80b4a4fcbb7e9c.jpeg)
新建类文件后,项目如下:
![0024a6571d1c4391b2eaa5a72f4a94e0.png](https://i-blog.csdnimg.cn/blog_migrate/4cedb0987b964d2a48f9c66bf718f90f.jpeg)
新建类MyCalc,后面会对这个类里的add方法进行测试:mycalc.h
class MyCalc{public: int add(int a,int b);};
mycalc.cpp
#include "mycalc.h"int MyCalc::add(int a,int b){ return a+b;}
main.cpp
#include #include "mycalc.h"#include int main(int argc, char *argv[]){ MyCalc* calc= new MyCalc; qDebug() << calc->add(1,2) << endl;}
三、新建测试用例子目录项目
在项目目录上点右键,选择新建子项目:
![bddd6b865edf8b7f1ae7b2e344fd1363.png](https://i-blog.csdnimg.cn/blog_migrate/913e23d3042f69849840e0ffa461f8ec.jpeg)
选择其他项目-Qt单元测试:
![ad6125977f5b20ad88a0a171a030625a.png](https://i-blog.csdnimg.cn/blog_migrate/2bd68e56e0a2ebcf7456e21771e2d2fb.jpeg)
![d472d1c3a7ce9381c55a82f53095678d.png](https://i-blog.csdnimg.cn/blog_migrate/0f24a2021ba3c27c9613594f60aac43f.jpeg)
![fc918650115389c127367197cfecf72b.png](https://i-blog.csdnimg.cn/blog_migrate/ae6ef8a8f31eae5609c606b5a240d44a.jpeg)
新建后项目如下:
![125122ccfc115beac8081c51aa113ae4.png](https://i-blog.csdnimg.cn/blog_migrate/6cd7d6d76f1934748c2ed4ed7a971230.jpeg)
mycalctest.pro文件内容:
#-------------------------------------------------## Project created by QtCreator 2020-08-14T19:49:16##-------------------------------------------------QT += testlibQT -= guiTARGET = tst_mycalctesttestCONFIG += consoleCONFIG -= app_bundleTEMPLATE = appHEADERS += ../maincode/mycalc.hSOURCES += tst_mycalctesttest.cpp ../maincode/mycalc.cppDEFINES += SRCDIR="$$PWD/"
测试用例文件test_mycalctesttest.cpp
#include #include #include #include "../maincode/mycalc.h"class MycalctestTest : public QObject{ Q_OBJECTpublic: MycalctestTest();private Q_SLOTS: void initTestCase(); void cleanupTestCase(); void testCase1();};MycalctestTest::MycalctestTest(){}void MycalctestTest::initTestCase(){qDebug() << "init" << endl;}void MycalctestTest::cleanupTestCase(){}void MycalctestTest::testCase1(){ QVERIFY2(true, "Failure"); MyCalc* calc=new MyCalc; int ret = calc->add(1,2); QVERIFY(3==ret); QVERIFY(4==ret);}QTEST_MAIN(MycalctestTest)#include "tst_mycalctesttest.moc"
在子项目mycalctest点右键、运行
![4db25f1dc32fb11f073f53ef302d386a.png](https://i-blog.csdnimg.cn/blog_migrate/9625b465d641550e740e69b9d443d457.jpeg)
QT的单元测试还可以对GUI模拟鼠标键盘进行测试,以后有机会再具体讲解过程。