Googletest的使用
Googletest是一款google内部使用的测试驱动开发工具
什么是测试驱动?
当编写一个程序单元时,先对这个程序单元编写其测试代码,然后再编写这个程序单元
测试驱动的优点
提高代码质量
整体上提高开发效率
有助于程序架构设计
Googletest的使用
编译Google Test
#unzip gtest_1.7.0.zip
#cd gtest_1.7.0
#g++ -I. -I./include –c src/gtest-all.cc
#ar -rv libgtest.a gtest-all.o
Googletest的使用
断言
ASSERT_*:当检查点失败时,退出当前函数
EXPECT_*:当检查点失败时,继续向下执行
布尔值检查
ASSERT_TRUE(condition);
ASSERT_FALSE(condition);
EXPECT_TRUE(condition);
EXPECT_FALSE(condition);
Googletest的使用
数值型检查
*_EQ(val1, val2); ==
*_NE(val1, val2); !=
*_LT(val1, val2); <
*_LE(val1, val2); <=
*_GT(val1, val2); >
*_GE(val1, val2); >=
字符串检查
*_STREQ(str1, str2); ==
*_STRNE(str1, str2); !=
*_STRCASEEQ(str1, str2); ==
*_STRCASENE(str1, str2); !=
后两者不管大小写
异常检查
*_THROW(statement, exceptiontype);
statement抛出类型为exceptiontype的异常
*_ANY_THROW(statement);
statement抛出任何异常
*_NO_THROW(statement);
statement不抛出任何异常
Googletest是一款google内部使用的测试驱动开发工具
什么是测试驱动?
当编写一个程序单元时,先对这个程序单元编写其测试代码,然后再编写这个程序单元
测试驱动的优点
提高代码质量
整体上提高开发效率
有助于程序架构设计
Googletest的使用
编译Google Test
#unzip gtest_1.7.0.zip
#cd gtest_1.7.0
#g++ -I. -I./include –c src/gtest-all.cc
#ar -rv libgtest.a gtest-all.o
Googletest的使用
断言
ASSERT_*:当检查点失败时,退出当前函数
EXPECT_*:当检查点失败时,继续向下执行
布尔值检查
ASSERT_TRUE(condition);
ASSERT_FALSE(condition);
EXPECT_TRUE(condition);
EXPECT_FALSE(condition);
Googletest的使用
数值型检查
*_EQ(val1, val2); ==
*_NE(val1, val2); !=
*_LT(val1, val2); <
*_LE(val1, val2); <=
*_GT(val1, val2); >
*_GE(val1, val2); >=
字符串检查
*_STREQ(str1, str2); ==
*_STRNE(str1, str2); !=
*_STRCASEEQ(str1, str2); ==
*_STRCASENE(str1, str2); !=
后两者不管大小写
异常检查
*_THROW(statement, exceptiontype);
statement抛出类型为exceptiontype的异常
*_ANY_THROW(statement);
statement抛出任何异常
*_NO_THROW(statement);
statement不抛出任何异常