
本文共 745 字,大约阅读时间需要 2 分钟。
刚回到实习公司,任务尚未下放,恰好公司使用的是Google测试框架,打算学习这个框架的使用。刚开始接触,遇到了一些问题需要解决。
在编译过程中,首先需要下载适用于Windows的msvc工具,或者通过cmake生成sln文件。如果cmake设置不当,可以尝试手动构建,生成release版本或debug版本的库。在实际操作中,由于对tr1库的处理不熟悉,出现了tr1报出异常的问题。通过定义#define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING 1
,可以暂时屏蔽这些警告信息。
在解决线程库问题时,由于对gtest内部线程实现不太了解,遇到了库文件路径配置上的困难。通过仔细查看图中库文件的路径,确认了debug库和release库的区别,最终成功配置了线程库的使用。
关于测试宏的理解,发现ASSERT_*
宏用于测试中断,若TEST宏内的某些操作失败,会直接退出当前函数;而EXCEPT_*
则允许在测试失败时继续执行后续代码。这点需要特别注意,尤其是在测试异常情况时。
在编写gtest测试用例时,需要注意以下几点:首先确保在VS中正确添加了gtest相关头文件的路径;其次,理解TEST_F宏的使用方法,第一个参数需为继承自testing::Test
的类,gtest会自动创建对象,并调用SetUp和TearDown方法。最后,避免测试名称重复,可以通过自定义宏来解决。
通过实践发现,自定义宏时使用##
拼接字符串的方式可灵活处理测试名称,不同数量的##
会影响结果,建议至少使用两个##
,以避免命名冲突。
最后,确保项目中所有依赖项均已添加到VS的项目配置中,包括头文件和库文件的路径。通过以上方法,可以顺利使用gtest框架进行测试开发。
发表评论
最新留言
关于作者
