C++单体测试
进击的横打
此人不懒,但也什么都没有写
展开
-
学习笔记:解读CppUnit源码8
首先还是从如何测试开始剖析代码把,以下就是ExampleTestCase.h的代码 class ExampleTestCase : public CPPUNIT_NS::TestFixture{ CPPUNIT_TEST_SUITE( ExampleTestCase ); CPPUNIT_TEST( example ); CPPUNIT_TEST( anotherExampl原创 2009-11-09 08:39:00 · 1160 阅读 · 0 评论 -
学习笔记:解读CppUnit源码5
cppUnit是支持多线程模式下测试的一种方法,在阅读TestListener之前我们不妨看看SynchronizedObject里面到底有什么东西。SynchronizedObject用来管理一个被同步对象,它定义了一个public属性的abstract inner class——SynchronizationObject,代表具备同步属性的对象 //此类定义了互斥锁功能,但具体行为需在原创 2009-11-10 13:04:00 · 893 阅读 · 0 评论 -
学习笔记:解读CppUnit源码4
可能大家都有这样的疑问:测试用例运行过程中,要是出现错误,异常甚至崩溃的情况下是在哪里捕捉到的呢?那么我们就从这里入手慢慢的来了解TestResult的各个机能。请大家先回忆一下TestCase::Run方法。 virtual void run(MyTestResult *result) { //result->protect中会捕捉异常,并记录信息 result->s原创 2009-11-10 09:58:00 · 1004 阅读 · 0 评论 -
学习笔记:解读CppUnit源码3
Test类就是抽象我们的测试用例的,那么Test类是直接new来创建的吗?当然不是的。在创建设计模式中,有一种创建叫做TestFactory。就是工厂模式。TestFactory.hclass CPPUNIT_API MyTestFactory {public: virtual ~MyTestFactory() {}; //创建一个Test实例 virtual MyT原创 2009-11-09 13:24:00 · 827 阅读 · 0 评论 -
学习笔记:解读CppUnit源码2
上次我详细的剖析了与Test.h相互关联的代码。Test类是cppUnit的核心。Test这个类相信看了上一章就知道,也就起到测试用例的作用,但是毕竟一个类的功能有限,如何扩充Test类的功能呢?下面装饰者模式就登场了。TestDecorator.h//装饰者模式:在TestDecorator的派生类中,这些功能将得到扩展class CPPUNIT_API MyTestDecorat原创 2009-11-09 12:40:00 · 899 阅读 · 0 评论 -
学习笔记:解读CppUnit源码1
最近比较空,所以读了一个礼拜的cppUnit源码,感觉还不错。在读cppUnit源码里面,也用到了各种DesignPattern,STL,模板编程,宏的映射等等,还是有很多可以学习的地方。只是自己刚刚读了一个礼拜,当然还有很多地方是没有很好理解的。所以先把理解的地方写下来,边看边理解代码。首先介绍下cppUnit源码中最基本的基类Test. h//所有测试对象类的抽象基类,主要是定义run原创 2009-11-09 10:00:00 · 1094 阅读 · 0 评论 -
CppUnit的代码模拟和应用举例
MyClass是被测对象MyClassTester是为了测试而追加的类 MyClass.h#ifndef MYCLASS_H#define MYCLASS_H#define UNIT_TEST(cls) friend class cls##Tester;/*** 为了访问私有成员,可以将测试类定义为产品类的友元类。例如,定义一个宏:** #define原创 2009-11-02 14:13:00 · 858 阅读 · 0 评论 -
(转)如何使用CppUnit进行单元测试
一、前言 测试驱动开发(TDD)是以测试作为开发过程的中心,它坚持,在编写实际代码之前,先写好基于产品代码的测试代码。开发过程的目标就是首先使测试能够通过,然后再优化设计结构。测试驱动开发式是极限编程的重要组成部分。XUnit,一个基于测试驱动开发的测试框架,它为我们在开发过程中使用测试驱动开发提供了一个方便的工具,使我们得以快速的进行单元测试。XUnit的成员有很多,如JUnit,Pyth转载 2009-11-02 14:58:00 · 877 阅读 · 0 评论 -
学习笔记:解读CppUnit源码6
看了前面5章的话,就可以了解cppUnit大致的结构了。这里讲讲一些并不是很核心但却是不可货缺的代码。看看他们虽然学不到优秀的设计知识,但是巩固一下C++的基础也不错。SourceLine.h//SourceLine应该用这个接口来调用#define CPPUNIT_SOURCELINE() ::CppUnit::MySourceLine( __FILE__, __LINE__ )原创 2009-11-10 15:29:00 · 1164 阅读 · 0 评论 -
学习笔记:解读CppUnit源码7
前面看过了 Message,SourceLine,Exception类的特征,那么这些类是如何运用在输出上呢?由这个问题带出我们今天要阅读的代码。Asserter.hstruct MyAsserter{ //抛异常 static void CPPUNIT_API fail( const MyMessage &message, const MySourceLine &so原创 2009-11-11 10:56:00 · 1034 阅读 · 0 评论