gtest简单应用
介绍
GTest 是一个跨平台的 C++单元测试框架。gtest是为了在不同 平台上为编写C++单元测试而生成的。它提供了丰富的断言、致命和非致命判断、参 数化等等测试所需的宏,以及全局测试,单元测试组件。
使用
相关的断言
// bool 值检查
ASSERT_TRUE(参数),期待结果是true
ASSERT_FALSE(参数),期待结果是false
//数值型数据检查
ASSERT_EQ(参数1,参数2),传入的是需要比较的两个数 equal
ASSERT_NE(参数1,参数2),not equal,不等于才返回true
ASSERT_LT(参数1,参数2),less than,小于才返回true
ASSERT_GT(参数1,参数2),greater than,大于才返回true
ASSERT_LE(参数1,参数2),less equal,小于等于才返回true
ASSERT_GE(参数1,参数2),greater equal,大于等于才返回true
创建的函数
int max(int x,int y)
{//返回x、y的最大值return std::max(x,y);
}TEST(最大值测试,测试用例1)
{//判断是否相等ASSERT_EQ(max(10,20),20);//判断是否大于ASSERT_GT(max(10,20),10);//判断是否小于,这里我们判断为失败的结果,观察是否继续向下走ASSERT_LT(max(10,20),10);//判断是否为真ASSERT_TRUE((max(10,20)==5));}TEST(最大值测试,测试用例2){EXPECT_EQ(max(10,20),20);EXPECT_GT(max(10,20),10);EXPECT_LT(max(10,20),10);EXPECT_TRUE((max(10,20)==5));}
主函数
int main(int argc,char* argv[])
{//单元测试框架初始化testing::InitGoogleTest(&argc,argv);//启动所有的测试用例RUN_ALL_TESTS();return 0;
}
运行结果
我们可以发现第一个测试用例只要一个测试错误,其没有运行到 ASSERT_TRUE,但是第二个测试用例有两个报错,表明其运行到了最后
补充:
对于 gtest 事件机制的讲解,等到使用时会进行补充