gtest 库的安装和使用
目录
介绍
安装
使用
介绍
官方文档:GoogleTest 入门 |GoogleTest 谷歌测试
gtest 库是谷歌开源的 C++测试单元框架,方便我们测试程序的正确性。
安装
sudo apt-get install libgtest-dev
使用
GTest 中的断言的宏可以分为两类:
• ASSERT_ 系列:如果当前点检测失败则退出当前函数
• EXPECT_ 系列:如果当前点检测失败则继续往下执行
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
TEST(测试名称, 测试样例名称)
{//...
}TEST(测试名称, 测试样例名称)
{//...
}TEST(测试名称, 测试样例名称)
{//...
}int main(int argc, char* argv[])
{//gtest 框架初始化testing::InitGoogleTest(&argc, argv);//调用测试套件return RUN_ALL_TESTS();
}
testing::InitGoogleTest 函数用来初始化,RUN_ALL_TESTS 宏用来调用所有测试单元
TEST 是一个宏,TEST 里面的内容就是要测试的内容。第一个参数是测试名称,如果不同的TEST 第一个参数相同,就属于同一个测试套件,第二个参数是测试的样例名称。
举例来说,我们要测试一个计算器类,该类有加法函数,减法函数,乘法函数,除法函数。我们可以写四个 TEST 宏来测试该类。
#include <gtest/gtest.h>
class Calculator
{public:int add(int x, int y){return x + y;}int subtract(int x, int y){return x - y;}int multiply(int x, int y){return x * y;}int division(int x, int y){return x / y;}
};TEST(Calculator_Test, 加法测试)
{Calculator c;ASSERT_EQ(c.add(10, 20), 30);
}
TEST(Calculator_Test, 减法测试)
{Calculator c;ASSERT_EQ(c.subtract(20, 10), 10);
}
TEST(Calculator_Test, 乘法测试)
{Calculator c;ASSERT_EQ(c.multiply(20, 10), 3);
}TEST(Calculator_Test, 除法测试)
{Calculator c;ASSERT_EQ(c.division(20, 10), 1);
}int main(int argc, char* argv[])
{//gtest 框架初始化testing::InitGoogleTest(&argc, argv);//调用测试套件return RUN_ALL_TESTS();
}