CppTest - C++单元测试框架


LGPL
跨平台
C/C++

软件简介

CppTest 是 C++ 的单元测试框架。CppUnit
简单得多,但是效果也不错。下面简要地对比这两个强大的工具:

  • 创建单元测试和测试套件的简便性。CppUnitCppTest 都创建类方法形式的单元测试,类本身都派生自工具提供的 Test类。但是,CppTest 的语法略微简单些,测试的注册在类构造器内进行。对于 CppUnit,需要额外的宏 CPPUNIT_TEST_SUITECPPUNIT_TEST_SUITE_ENDS
  • 运行测试。CppTest 直接调用测试套件上的 run 方法,而 CppUnit 使用单独的 TestRunner 类,通过调用这个类的 run 方法运行测试。
  • 扩展测试层次结构。 对于 CppTest,随时可以从以前的测试套件派生新类,从而扩展测试套件。新的类定义一些新函数,这些函数成为新的单元测试。只需在新类类型的对象上调用 run 方法。与之相反,CppUnit 需要使用 CPPUNIT_TEST_SUB_SUITE宏和类继承来实现相同的效果。
  • 生成格式化的输出。CppTestCppUnit 都允许定制输出。但是,CppTest 有预定义的 HTML 输出格式化器,而 CppUnit 没有。但是,只有 CppUnit 支持 XML 格式化。它们都支持文本和编译器式格式。
  • 创建测试装备。 要想使用测试装备,CppUnit 要求测试类派生自 CppUnit::TestFixture。您必须提供设置和退出例程的定义。对于 CppTest,只需提供设置和退出例程的定义。这个解决方案显然更好,因为这让客户机代码更简单。
  • 预定义的宏支持。CppTestCppUnit 都提供一组用于断言、处理浮点等的宏。
  • 头文件。 CppTest 只要求包含一个头文件,而 CppUnit 客户机代码必须根据使用的特性包含多个头文件,比如 HelperMacros.h 和 TextTestRunner.h。