1、GTEST测试框架简介及在RT-Thread上的应用指南,许思维,内容提要,GTEST测试框架简介 GTEST是什么?为什么要用GTEST?GTEST怎么用?GTEST在RT-Thread上的应用指南GTEST的RT-Thread移植如何在RT-Thread项目中使用GTESTGTEST on RT-Thread Demo,GTEST测试框架简介,GTEST是什么?为什么要用GTEST?GTEST怎么用?,GTEST是什么?,Google Testing and Mocking FrameworkGoogleTest is a testing framework developed by th
2、e Testing Technology team with Googles specific requirements and constraints in mind.Whether you work on Linux,Windows,or a Mac,if you write C+code,GoogleTest can help you.And it supportsanykind of tests,not just unit tests.,GTEST是什么?,Google开发的跨平台(Linux,Windows,or a Mac)移植到 RT-Thread 也不难(后面展示)被测代码是C
3、/C+测试框架googletest单元测试模拟框架googlemock模拟模块外部调用,为什么要用GTEST?,与RT-Thread UTEST比较优点接口更一致功能更强大缺点代码体积大(Flash占用多)RAM占用更多单元测试的执行开发阶段(发布不会包含相关代码)通常结合CI/CD流水线自动执行(使用QEMU虚拟硬件)Flash/RAM占用大的缺点是可以接受的,RT-Thread UTEST断言宏,GTEST断言宏,等于(EQ)、不等于(NE)、小于等于(LE)、小于(LT)、大于等于(GE)、大于(GT),字符串等于(STREQ),字符串不等于(STRNE),字符串忽略大小写等于(STRC
4、ASEEQ)、字符串忽略大小写不等于(STRCASENE)、值在接近(NEAR),为什么要用GTEST?,流行度高大量开源项目使用GTest作为测试框架很多免费的教程、文章、示例代码AI编程最友好的测试框架大量开源项目用了GTest很多开源项目被用作AI大模型的训练数据集AI大模型很懂怎么写GTest测试用例,释放AI编程的威力!,写单元测试用例是一项无聊的工作要覆盖正常逻辑要覆盖边缘条件可能还想顺便测一下性能让AI助手帮你写单元测试用例!极大提升了开发效率!同时提升了代码质量!不需要花费太多的额外时间!,GTEST怎么用测试用例怎么写?,GTEST怎么用?,GTEST断言宏,等于(EQ)、不
5、等于(NE)、小于等于(LE)、小于(LT)、大于等于(GE)、大于(GT),字符串等于(STREQ),字符串不等于(STRNE),字符串忽略大小写等于(STRCASEEQ)、字符串忽略大小写不等于(STRCASENE)、值在接近(NEAR),ASSERT_*or EXPECT_*?,Upon failure,EXPECT_ macros generate nonfatal failures and allow the current function to continue runningEXPECT_ 失败允许当前函数继续执行一般用于输出、计算得到的值的比较(失败了不影响后续的)while
6、 ASSERT_ macros generate fatal failures and abort the current function.ASSERT_ 失败会中断当前函数的执行一般用于指针判空、输入条件的判断(失败了不能执行后面的),GTEST on RT-Thread应用指南,GTEST的RT-Thread移植如何在RT-Thread项目中使用GTESTGTEST on RT-Thread Demo,GTest的RT-Thread移植,构建脚本编写SCons编译问题解