编写CppUnit测试用例
作者:网络转载 发布时间:[ 2013/10/12 17:12:05 ] 推荐标签:
一、测试前的说明:
1、对Fixture的一个测试函数转变成一个测试用例,需要生成一个CppUnit::TestCaller的对象。
有时可能运行一个Fixture的多个测试函数,甚至多个Fixture。CppUnit中把这种同时运行的测试案例的集合称为TestSuite。
而TestRunner则运行测试用例或者TestSuite,具体管理所有测试案例的生命周期,目前提供了一下3类TestRunner:
(1) CppUnit::TestUi::TestRunner//文本方式的TestRunner
(2) CppUnit::QtUi:: TestRunner//Qt方式的TestRunner
(3) CppUnit::MfcUi:: TestRunner//MFC方式
二、测试分类
1、不含宏的文本方式测试
2、含宏的文本方式测试
3、基于GUI的含宏的MFC的测试方式
三、测试步骤
1、不含宏的文本测试
需包含 cppunitd_dll.dll、cppunitd_dll.lib库。
文本测试,需要文本方式的TestRunner 如:CppUnit::TestUi::TestRunner。
Step1:首先完成测试函数的编写,测试类需要继承CppUnit::TestFixture,此类中有2个虚函数:void setup()和void teardown();
void setup() 完成初始化工作;
void teardown() 完成收尾的清理工作;
子类需实现这2个函数。
Step2:编写测试类的测试函数如testAdd();
Step3:编写被测试对象函数。
示例代码如下:
main.cpp
#include "MathTest.h"
#include "cppunit/TestSuite.h"
#include "cppunit/ui/text/TestRunner.h"
#include "cppunit/TestCaller.h"
#include <iostream>
using namespace std;
#pragma comment (lib, "cppunitd_dll.lib")
int main()
{
CppUnit::TextUi::TestRunnerrunner;
CppUnit::TestSuite*suite = new CppUnit::TestSuite();
//添加一个测试用例
suite->addTest(newCppUnit::TestCaller<MathTest>("testAdd",&MathTest::testAdd));
//指定运行TestSuite
runner.addTest(suite);
//开始运行,自动显示测试进度和测试结果
runner.run("",true);
return 0;
}
MathTest.h
#include "cppunit/TestFixture.h"
class MathTest:public CppUnit::TestFixture
{
public:
//初始化函数
void setUp();
//清理函数
voidtearDown();
//测试加法的测试函数
voidtestAdd();
protected:
intm_value1,m_value2;
};
MathTest.cpp
#define MATHTEST_H
#ifdef MATHTEST_H
#include "MathTest.h"
#include "cppunit/TestAssert.h"
#endif
void MathTest::setUp()
{
m_value1 = 2;
m_value2 = 3;
}
void MathTest::tearDown()
{
}
void MathTest::testAdd()
{
int ret =m_value1 + m_value2;
CPPUNIT_ASSERT(ret== 5);
}
|
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11