由于不同的项目分别使用了cxxtest和gtest不同的UT测试框架,所以对它们有点了解。总体来说,gtest功能比较强大,但相对复杂一点。
cxxtest的测试用例是先写到一个.h的文件里,然后用脚本把它转成.cpp的文件,看起来有点别扭,但集成到你的makefile里,也是比较简单的。不过它有个麻烦的地方是你要先装个perl或者python。
它的例子如下:
class SampletestSuite : publicCxxTest::TestSuite
{
public:
//定义测试,以test作为测试函数前缀,
//这是cxxtestgen.pl或cxxtestgen.py对测试文件进行扫描,抽取测试用例的依据
void testMultiplication(void )
{
TS_ASSERT_EQUALS( 2 * 2, 5 );
}
};
如果要在每个用例之前执行环境准备工作可以在setUp();函数里添加。如果要在每个用例之后执行一些清理工作则在tearDown();函数里实现。这两个函数实现时都包含在测试类里面。