c语言sscanf函数的用法是什么
314
2022-10-11
手把手写gtest
背景
C++工程开发一般包括编码、编译、自测、集成测试几个阶段。其中自测很重要,充分的自测可以发现和解决编码和设计过程中的绝大部分问题。Google 的gtest框架是一种高效的测试框架,利用gtest 框架在自己模块的持续开发完好,就可以自己实现测试驱动开发,达到下面两个目的:
快速验证新添功能; 回归验证已有功能(保证新的功能不影响已有的功能)
那么,如何高效地搭建自己的gtest 框架呢?
具体步骤
下面总结了几个最主要的步骤:
安装gtest 开发包
yum search gtest yum install gtest.x·86_64 yum install gtest-devel.x86_64
测试文件中添加头gtest 头文件和gtest main函数
...
#include
添加你的测试类
继承gtest基类
class TestYourClass : public testing::Test
{
...
}
上面最重要的是实现下面的两个虚函数:
每个test case 启动前的初始化函数:
virtual void SetUp() {
std::cout<<"SetUp"<
如果需要mock 一些依赖接口,这里有时候还需要先mock 一下依赖接口所在的类:
Class MocYourDependentInterface : public YourDependentInterFace { ... virtual interface1(); virtual interface2(); ... }
完善你的test case
TEST_F(TestYourClass, Case1) { int64_t serverid; int timeout_ms = 10000; :Status status; │ std::string rpc_server_address = FLAGS_test_machine_ip; .... }
makefile中添加libgtest 链接
如果使用CMakeList里:参考如下格式把gtest 加入到target_link_Libraries里面:
target_link_libraries(dataserver brpc braft gflags gtest protobuf)
如果手动写MakeFile
在链接库里加上 -lgtest
结果展示
[==========] Running 1 test from 1 test case. [----------] Global test environment set-up. [----------] 1 test from TestYourClass [ RUN ] TestYourClass.Case1
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~