您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 >
用cpp做C单元测试
作者:网络转载 发布时间:[ 2013/2/19 16:17:19 ] 推荐标签:

  现在, 什么编码方式并不重要, 因为重要事是我们必须肯定它必须做, 是这个类应该做: 正确地装载和存放数据到文件。

  为了做这个验证,我们去创造一个新的测试集,包括二个测试用例: 一个装载数据和另为存储数据。

使用 CPPUnit

  你能在这里http://cppunit.sourceforge.net/得到新的CPPUnit 版本, 你能发现所有的库 , 文献, 例子和其它有趣的材料。(我下载了版本为1.8.0 并且这个颁布工作良好)

  在Win32里, 你能在VC++ 之下(6.0 和以后版本)使用CPPUnit , 但是当CPPUnit 使用ANSI C++, 有少量接口时针对其它环境象C++Builder。

  在CPPUnit发布版本里面,所有建造库的步骤和信息,可以在INSTALL-WIN32.txt文件找到,。当所有二进制文件被构建之后, 你能写你自己的测试集了。

  想在VC中写自己的测试程序,可以按照以下步骤:

  建立一个MFC的对话框(或文档视图结构)
  允许时间类型信息,Alt+F7 --> C/C++ --> C++ language --> Enable RTTI
  把Cppunitinlude放到include目录:Tools - Options - Directories - Include.
  用cppunitd.lib (静态连接) 或者cppunitd_dll.lib (动态链接),testrunnerd.lib来链接你的程序。
  如果动态链接,要把testrunnerd.dll 拷到应用程序目录来运行。

  Ok,看一下测试用例的类的定义吧。

#if !defined(DISKDATA_TESTCASE_H_INCLUDED)
#define DISKDATA_TESTCASE_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <cppunit/TestCase.h>
#include <cppunit/extensions/HelperMacros.h>

#include "DiskData.h"

class DiskDataTestCase : public CppUnit::TestCase
{
CPPUNIT_TEST_SUITE(DiskDataTestCase);
CPPUNIT_TEST(loadTest);
CPPUNIT_TEST(storeTest);
CPPUNIT_TEST_SUITE_END();

public:
void setUp();
void tearDown();

protected:
void loadTest();
void storeTest();

private:
DiskData *fixture;
};

#endif

  首先, 必须包含TestCase.h和HelperMacros.h. 第一步,我们的从我们的Testcase基类配生的新类。第二,用一些宏使我们的定义的更方便,如 CPPUNIT_TEST_SUITE (开始测试定义), CPPUNIT_TEST (定义一个测试用例) 或 CPPUNIT_TEST_SUITE_END (结束一个测试集).

  我们的类(DiskDataTestCase)有重载了两个方法setUp()和tearDown(). 一个开始,一个结束测试。

  测试过程如下

启动程序
点击“Run”
调用Call setUp()方法: 构建我们的测试对象fixture
调用第一个测试方法
调用tearDown() 方法,清除对象
调用Call setUp()方法: 构建我们的测试对象fixture
调用第一个测试方法
调用Call setUp()方法: 构建我们的测试对象fixture
...
像下面的形式:

#include "DiskDataTestCase.h"

CPPUNIT_TEST_SUITE_REGISTRATION(DiskDataTestCase);


void DiskDataTestCase::setUp()
{
fixture = new DiskData();
}

void DiskDataTestCase::tearDown()
{
delete fixture;
fixture = NULL;
}


void DiskDataTestCase::loadTest()
{
// our load test logic
}


void DiskDataTestCase::storeTest()
{
// our store test logic
}

上一页123下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd