WEB开发网
开发学院软件开发VC 如何使用CppUnit进行单元测试 阅读

如何使用CppUnit进行单元测试

 2007-06-14 21:33:18 来源:WEB开发网   
核心提示: TestFixture:用于维护一组测试用例的上下文环境,在实际应用中,如何使用CppUnit进行单元测试(4),我们经常会开发一组测试用例来对某个类的接口加以测试,而这些测试用例很可能具有相同的初始化和清理代码,按照树形结构管理测试用例TestSuit是TestComposite的一个实
TestFixture:用于维护一组测试用例的上下文环境。

在实际应用中,我们经常会开发一组测试用例来对某个类的接口加以测试,而这些测试用例很可能具有相同的初始化和清理代码。为此,CppUnit引入TestFixture来实现这一机制。

TestFixture具有以下两个接口,分别用于处理测试环境的初始化与清理工作:

virtual void setUp();
virtual void tearDown();
TestCase:测试用例,从名字上就可以看出来,它便是单元测试的执行对象。

TestCase从Test和TestFixture多继承而来,通过把Test::run制定成模板函数(Template Method)而将两个父类的操作融合在一起,run函数的伪定义如下:

// 伪代码
void TestCase::run(TestResult* result)
{
  result->startTest(this); // 通知result测试开始
  if( result->protect(this, &TestCase::setUp) ) // 调用setUp,初始化环境
    result->protect(this, &TestCase::runTest); // 执行runTest,即真正的测试代码
  result->protect(this, &TestCase::tearDown); // 调用tearDown,清理环境
  result->endTest(this); // 通知result测试结束
}
这里要提到的是函数runTest,它是TestCase定义的一个接口,原型如下:virtual void runTest();

用户需从TestCase派生出子类并实现runTest以开发自己所需的测试用例。

另外还要提到的就是TestResult的protect方法,其作用是对执行函数(实际上是函数对象)的错误信息(包括断言和异常等)进行捕获,从而实现对测试结果的统计。

TestSuit:测试包,按照树形结构管理测试用例

TestSuit是TestComposite的一个实现,它采用vector来管理子测试对象(Test),从而形成递归的树形结构。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:如何 使用 CppUnit

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接