欢迎大家关注我的微信公众号:Xndroid,探索Android技术,解锁移动世界。
GTest全称为Google Test,是由谷歌开源的测试框架,而AOSP源码中集成了这套测试框架,源码路径:external/googletest。
今天这篇文章将介绍如何在Android系统构建中使用GTest来为我们的的C/C++代码进行测试。
使用流程
开门见山,我们直接来讲GTest的具体使用流程。
1.使用TEST()或者TEST_F()宏定义测试函数,该测试函数不包含返回值,TEST()宏定义使用方法;
TEST(TestSuiteName, TestName) {
... test body ...
}
其中TestSuiteName必须是唯一的,表明特定的测试套件,TestName在一个TestSuiteName内是唯一的,而不同的TestSuiteName内允许存在同名的TestName;
2.在该测试函数内,实现测试逻辑,整个过程中使用预值和断言来检测测试中的步骤,其中预值使用类似于EXPECT_*的宏定义,而断言使用类似于 ASSERT_*的宏定义。
3.测试结果由预值和断言的执行确定,如预值不满足,则会打印相关错误信息;如断言未通过则直接中断对应测试
如针对如下接口:
// Returns the factorial of n
int Factorial(int n);
我们编写相应的测试用例如下:
// Tests factorial of 0.
TEST(FactorialTest, HandlesZeroInput) {
EXPECT_EQ(Factorial(0), 1);
}
// Tests factorial of positive numbers.
TEST(FactorialTest, HandlesPositiveInput) {
EXPECT_EQ(Factorial(1), 1);
EXPECT_EQ(Factorial(2), 2);
EXPECT_EQ(Factorial(3)