gtest

谷歌测试说明文档:https://google.github.io/googletest/advanced.htmlgtest安装:https://blog.csdn.net/Jacksqh/article/details/129805462?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-129805462-blog-108855960.235%5Ev36%5Epc_relevant_default_base3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-129805462-blog-108855960.235%5Ev36%5Epc_relevant_default_base3&utm_relevant_index=1gtest华为文档:http://3ms.huawei.com/hi/group/1002577/wiki_7445653.html一篇比较细致的博客:https://blog.csdn.net/jkddf9h8xd9j646x798t/article/details/105964161

安装gtest

快速入门

编写main函数:

#include<iostream>
#include<gtest/gtest.h>
int add(int a,int b)
{
    return a + b;
}

//testCase是测试类名,add是测试类的一种实例情况。
//==TEST()宏==的第一个参数是Test Case的名称,第二个参数是隶属于第一个Test Case参数的Test的名称。GoogleTest根据Test Case对测试结果进行分组,所以一些相关的Test应该放在同一个Test Case中
TEST(testCase, add)
{
    EXPECT_EQ(add(1,2),3);
    EXPECT_EQ(add(1,4),5);
}
int main(int argc, char **argv)
{
    testing::InitGoogleTest(&argc,argv);
    return RUN_ALL_TESTS();
}

编译:g++ main.cpp -lgtest -lpthread -L/usr/local/lib64 -o main

检测字符串

testCase

测试装置(Test Fixtures)

假如我们有非常多的测试实例,不想重复初始化

TEST_F()宏,我们想让多个Test使用同一套数据配置时,就需要用到测试装置,创建测试装置的具体方法如下:

派生一个继承 ::testing::Test 的类,并将该类中的一些内容声明为 protected 类型,以便在子类中进行访问;根据实际情况,编写默认的构造函数或SetUp()函数,来为每个 test 准备所需内容;根据实际情况,编写默认的析构函数或TearDown()函数,来释放SetUp()中分配的资源;根据实际情况,定义 test 共享的子程序。不同用例之间,数据实际都是独占的,不会相互影响。

TEST_F()宏的第一个参数(即Test Case的名称)必须是测试装置类的类名。

对于TEST_F()定义的每个Test,Google Test将会在运行时创建一个新的测试装置对象,并立即通过SetUp()对其进行初始化,然后运行这个Test,之后通过TearDown()进行数据清理,最后删除测试装置对象。==同一个Test Case中不同的test具有不同的测试装置对象,并且Google Test每次创建新的测试装置前都会先删除之前的测试装置。==多个Test不会重用相同的测试装置,某个Test对测试装置进行修改对其他Test无影响。————————————————版权声明:本文为CSDN博主「hywmj」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/wangmj_hdu/article/details/118369609

class myTest:public testing::Test{
protected:
     virtual void SetUp() {
		std::cout<<"总是在测试用例开始时被调用"<<std::endl;
	}

    virtual void TearDown() {
        std::cout<<"总是在测试用例结束后被调用"<<std::endl;
    }

    int add(int a,int b)
    {
        return a+b;
    }

    //最先调用
    myTest()
    {
        std::cout<<"构造函数"<<std::endl;
    }

    //最后调用
    ~myTest()
    {
        std::cout<<"析构函数"<<std::endl;
    }

    int x=3;
    int y=5;

};

//这个宏允许我们直接使用myTest的成员变量
TEST_F(myTest,test1)
{
    EXPECT_EQ(add(x,y),8)<<"-------add(3,5)--------"<<std::endl;
}

TEST_F(myTest,test2)
{
    EXPECT_EQ(add(3,6),9);
}

全部评论

相关推荐

感觉他们一点都不了解现在这个社会就业有多难,已经在牛客刷到好多篇&nbsp;延毕的帖子了,延毕就会导致已经找好的工作就没了,还得重新再找,学校和老师们是怎么想的呢????看到学生丢失工作会开心吗&nbsp;就业数据都在造假,真实的就业困难不去解决&nbsp;一个个真是好样的
从今天开始狠狠卷JV...:学生看到的是导师不放实习导致offer黄了。 导师看到的是招进来的学生吃自己补助和自己的招生名额,却没给自己升迁带来任何帮助,还要跑路。 根本利益的不一致,最主要留校的导师大概率是职场上招聘失败的,被迫留校的,什么牛鬼蛇神都会有
点赞 评论 收藏
分享
LemontreeN:有的兄弟有的我今天一天面了五场,4个二面一个hr面
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务