软件测试单元测试c,用cpp做C单元测试

使用 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

把Cppunit\inlude放到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

}

编写测试用例

一旦我们知道我们要测什么之后,我们就可以写测试用例了。我们能够执行所有的我们需要的操作:使用普通库函数,第三方库,win32api库函数,或简单使用c++内部操作

有时候,我们需要调用外部辅助文件或者数据库,比较外部文件和内部数据是否一致。

每发现一个错误时9比如发现内部数据和外部数据不同我们就创建一个异常,使用 CPPUNIT_FAIL(message) 来显示异常信息。

32/3<123>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值