您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > cppUnit
CppUnit Cookbook中文版
作者:网络转载 发布时间:[ 2014/1/2 10:04:17 ] 推荐标签:CppUnit 单元测试

Suite
为了建立多个用例并且让它们一次全部运行,你该如何做呢?
CppUnit提供了一个TestSuite类来同时运行任意个用例。
在上面我们看到了如何运行一个测试用例。
为了创建含有两个或更多用例的suite,你应该这么办:
CppUnit::TestSuite suite;
CppUnit::TestResult result;
suite.addTest( new CppUnit::TestCaller<ComplexNumberTest>(
"testEquality",
&ComplexNumberTest::testEquality ) );
suite.addTest( new CppUnit::TestCaller<ComplexNumberTest>(
"testAddition",
&ComplexNumberTest::testAddition ) );
suite.run( &result );

TestSuites不必仅仅含有测试用例的caller.它们可以包含实现Test 接口的任意对象。例如:你可以在你的代码中创建一个TestSuite,我也可以在我的代码里建立一个,我们通过建立一个同时包含它们两个的TestSuite使它们得以同时运行。
CppUnit::TestSuite suite;
CppUnit::TestResult result;
suite.addTest( ComplexNumberTest::suite() );
suite.addTest( SurrealNumberTest::suite() );
suite.run( &result );

TestRunner
你该如何运行你的用例并收集测试结果呢?

一旦你有了一个TestSuite, 你会想运行它。CppUnit提供了定义这些suite并显示结果的工具。你可以通过在一个TestSuite中加入一个名为suite的静态的method使你的suite与TestRunner建立联系。

例如,为了使TestRunner可以看到一个ComplexNumberTest suite,在ComplexNumberTest中加入一下代码:
public:
static CppUnit::Test *suite()
{
CppUnit::TestSuite *suiteOfTests = new CppUnit::TestSuite( "ComplexNumberTest" );
suiteOfTests->addTest( new CppUnit::TestCaller<ComplexNumberTest>(
"testEquality",
&ComplexNumberTest::testEquality ) );
suiteOfTests->addTest( new CppUnit::TestCaller<ComplexNumberTest>(
"testAddition",
&ComplexNumberTest::testAddition ) );
return suiteOfTests;
}

为了使用这个版本,在Main.cpp中包含以下头文件:
#include <cppunit/ui/text/TestRunner.h>
#include "ExampleTestCase.h"
#include "ComplexNumberTest.h"

然后在main()中加入addTest(CppUnit::Test *)的调用:
int main( int argc, char **argv)
{
CppUnit::TextUi::TestRunner runner;
runner.addTest( ExampleTestCase::suite() );
runner.addTest( ComplexNumberTest::suite() );
runner.run();
return 0;
}

TestRunner会运行这些用例。如果所有的测试都顺利通过,你会得到一个反馈。如果任何一个测试没有通过,你会得到以下信息:
*失败的测试用例的名字
*包含这个测试源文件的名字
*错误发生的行号
*发现错误的CPPUNIT_ASSERT()调用中的所有文字。

Helper Macros
你可能已经注意到了,实现fixture中的static suite()是一个要反复要做的,并且容易出错的任务。我们可以使用一组写 test fixture的宏来自动执行这些静态的suite method.

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