gtest中匹配器及ASSERT_THAT宏所在位置咨询
问题解答
你找的这些匹配器(比如ElementsAre)和ASSERT_THAT宏其实都属于Google Mock(gmock),并非gtest核心库的内容,所以在gtest的include/gtest目录里找不到。
具体位置如下:
- 相关内容都在仓库的
googletest/googlemock/include/gmock/路径下 ASSERT_THAT宏定义在gmock.h头文件中- 像ElementsAre这类容器匹配器,主要在
gmock-matchers.h或者更细分的gmock-container-matchers.h里
之所以gtest的在线文档会提到它们,是因为gmock是和gtest配套使用的测试框架,官方文档会把两者的内容放在一起说明,但代码层面是分开存放的。如果要使用这些功能,需要包含gmock的头文件(比如#include <gmock/gmock.h>),并且编译链接时要引入gmock库。
内容的提问来源于stack exchange,提问作者screwnut
相关产品推荐
相关产品推荐

