C++单元测试工具unittest++使用小结

UnitTest++是一个C++的单元测试工具,这个工具小巧,使用简单.测试结果支持输出到屏幕和保存成xml文件.

  这个项目的地址是:http://unittest-cpp.sourceforge.net/UnitTest++.html

  本文章是基于版本1.4

  使用环境是:linux fedora64 2.6.35.6

  使用介绍:

  1.如果还没该工具,请到项目地址去下载.

  2.下载解压后,执行make,会生成静态库libUnitTest++.a

  3.项目自带的测试用例在TestUnitTest++.cpp中,大家可以通过这个文件来熟悉测试用例的使用方法.

  一个测试用例的语法结构是:

  TEST(测试用例名称)

  {

  测试用例体

  }

  在同一范围内,测试用例名称要求唯一。

  测试用例体内可以使用该项目支持的宏,常用的几个是:

  CHECK:检测是否为真

  CHECK_EQUAL:检测是否相等

  CHECK_CLOSE:检测是否接近

  4.使用方法:

  当我们完成了我们的代码后,我们只要编写测试用例文件就可以了,然后在编译的时候链接上libUnitTest++.a.

  比如:

  我们定义如下2个文件: func.h func.cpp

  其中h文件中声明了函数add,multi

  cpp文件中是其实现

  那么我们可以写一个测试文件,叫做test.cpp

  在这个文件中要包含UnitTest++.h,如果输出结果希望到屏幕,那么包含TestReporterStdout.h,如果希望输出到xml文件中,那么

  包含XmlTestReporter.h

  输出到标准的输出的代码,请参见src/tests/Main.cpp

  如果输出到xml文件,在main函数中应该这样写:

int main(int argc, char** argv)
{
//for xml output
ofstream ofile("./test.xml");
UnitTest::XmlTestReporter reporter(ofile);
UnitTest::TestRunner runner(reporter);
return runner.RunTestsIf(UnitTest::Test::GetTestList(),NULL,UnitTest::True(),0);

}

测试用例可以这样写:

//test case 1
TEST(func_add)
{
int x = 3;
int y = 4;
CHECK_EQUAL(add(x,y), 7);
}
//test case 2
TEST(func_multi)
{
int a = 2;
int b = 5;
CHECK_EQUAL(multi(a,b),10);
}
//test case 3
TEST(func_add2)
{
int x = 3;
int y = 4;
int sum = add(x,y);
CHECK(7 == sum);
}


你可能感兴趣的:(C++框架&开源库)