使用步骤
- 在C++头文件中定义测试用例
- 利用 cxxtestgen 从头文件中为test runner生成测试文件
- 编译 test runner
- 执行 test runner 来运行所有的测试用例
相关概念
- test fixture
表示执行测试所需要的任何准备设置,如:创建临时目录,启动服务器等 - test suite
表示可被测试的最小单元的集合,简单理解,就是测试用例. 需要继承于 CxxTest::TestSuite类 - test
一个test suite中的公共函数,表示一个测试用例,方法需以test开头, 例如:testDirectoryScan, testCoolFeature(). - test runner
负责执行test中的一个或者多个测试用例.并且输出相应的报告给用户.
一个简单的例子
Step1
// MyTestSuite1.h
#include <cxxtest/TestSuite.h>
class MyTestSuite1 : public CxxTest::TestSuite
{
public:
void testAddition(void)
{
TS_ASSERT(1 + 1 > 1);
TS_ASSERT_EQUALS(1 + 1, 2);
}
};
以上例子中定义了一个test suite包含一个测试用例testAddition().
测试用例中做了两个断言判断.
Step2
使用 cxxtestgen 脚本为上面定义在头文件中test sutie生成一个test runner文件名为: runner.cpp
cxxtestgen --error-printer -o runner.cpp MyTestSuite1.h
Step3
编译这个test runner文件.
g++ -o runner -I$CXXTEST runner.cpp
注意,编译自己的test runner文件时,需要加上所需要的头文件和lib 库.
Step4
执行测试
./runner
测试结果如下:
Running cxxtest tests (1 test).OK!