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