26 | 牛刀小试(上):实现测试框架前的基础准备
软件开发流程
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何准备一个自己的测试框架以及介绍了项目开发流程的前中后三个部分,以及黑盒测试与白盒测试两种测试方法。作者首先解释了软件开发的前期、中期和后期阶段,比喻为项目经理和产品经理分析需求、详细设计,技术人员编码和测试,项目交付和维护的过程。然后,作者详细介绍了黑盒测试和白盒测试的概念,以及它们在实际编程中的应用。最后,作者强调了测试不仅是测试人员的专属,开发人员也需要掌握相关技能,并介绍了单元测试框架的概念。文章内容通俗易懂,适合初学者快速了解软件开发流程和测试方法。同时,文章还介绍了Google开发的单元测试框架Google Test(gtest),并提供了相关的使用代码和输出内容。通过对gtest的使用代码和输出内容的解析,读者可以了解gtest的基本使用方法和相关宏的作用。文章最后鼓励读者独立完成任务,并总结了今天的课程内容。
《人人都能学会的编程入门课》,新⼈⾸单¥59
全部留言(6)
- 最新
- 精选
- 🤪HappyJoo我是复制您的代码的呀,难道是我的gtest安装错了? https://github.com/HappyJoo/CLearningScript/blob/master/MyTestFramework/testFramework.cpp (弱弱地问一句,胡光老师是不是不喜欢看留言里面的评论的)
作者回复: 还记得之前让你们看的编译和链接那里的内容吧。其中给你们留了一个自学的小作业。你看你的报错里面,报了一堆未定义,还全都是 gtest 中的符号未定义,是你编译的时候,没有链接 gtest 的静态库导致的。gtest 环境,你要是暂时装不明白,也不影响后续的学习,写文章的时候,就担心你们会遇到各种各样的环境或者编译问题,自己搞不定的话,留言区中回答这类问题,不是很方便,所以就跟你们强调了,即使你没有 gtest 也不影响接下来的学习。
2020-03-27 - 🤪HappyJoo老师: 1,不能用gcc编译吗?我用gcc的时候,连include<gtest/gtest.h>都出错,用g++不会出错(版本-7.5.0) 2,用g++之后还是不能用您的代码,出现了很多错误,最后一句是’collect2: error: ld returned 1 exit status‘,咋办咋办~~具体可以参考(https://stackoverflow.com/questions/60823428/using-gtest-with-gcc-cpp-got-error-collect2-error-ld-returned-1-exit-status).
作者回复: 不能用 gcc 编译 gtest,因为 gtest 是 c++ 编写的单元测试框架。 你的代码上传一下 github,我看一下,看到这个错误,我盲猜,有可能是你的主函数名字写错了,你检查一下。
2020-03-252 - 宋不肥提问: 我去官方的github(https://github.com/google/googletest)上下了包,解压后,在readme里面看见: If you use Windows and have Visual Studio installed, a `gtest.sln` file and several `.vcproj` files will be created. You can then build them using Visual Studio. 但是我在包里面没有找到‘gtest.sln`文件,然后回官方的GitHub里面find file也没找到,看博客Linux下会好配很多,在家只有笔记本,所以没能用Linux,但window里面VS配好像必须要这个‘gtest.sln`文件,找不到。
作者回复: 现在 VS 下面也支持 cmake 编译,你可以试着在 VS 下面使用 cmake 编译工程。
2020-03-202 - 罗耀龙@坐忘茶艺师学编程 思考题第一部分:TEST 宏展开以后会被替换成什么内容 应该是 int test(要测试的函数指针, 要校验的值){ if 运行正常 返回"OK”; if 运行错误 printf(“应该的值%d,现在的值%d”,正确的函数运行结果,输入的变量); } 第二部分:主函数中只调用了 RUN_ALL_TESTS 函数,为什么好像是执行了程序中所有的 TEST 代码段?这个功能是怎么实现的? 说实话,我在自己的VS2019环境中,输入了RUN_ALL_TESTS 函数,反而出现了红色的警告 在可获得的资料中得知,RUN_ALL_TESTS其实是一系列的命令的集合,依次调用 1. UnitTest::Run() 2. UnitTest::Run() 3. UnitTestImpl::RunAllTests() 4. TestCase::Run() 5. TestCase::Run() 6. Test::Run() 7. Test::TestBody() 不知道我想的对不对······2020-10-281
- 奕写单元测试是一个程序员的职业素养2020-03-191
- 罗耀龙@坐忘茶艺学编程 1、在网上搜gtest的安装教程是好,但是已经安装了VS2019的同学在这里可以窃喜了:VS2019就自带gtest的。想试着安装gtest的同学,我也建议还不如直接安装VS2019,顺便换一个新的编程环境; 2、在vs2019里,是直接用gtest新建项目,再把自己想要测试的东西放进去。 3、别傻傻的直接把老师的代码复制进去,得分别“填好”php.cpp、php.h、test.cpp三部分,代码才能跑起来。2020-10-28