我正在尝试将googlemock集成到我的测试中。我已经在googletest上成功构建并运行了测试,现在也尝试将gmock功能逐步添加到测试中,但是遇到了我完全不理解的编译错误。

我没有尝试使用或定义模拟类,也没有尝试使用gmock.h提供的任何东西。在我(以前工作的)tests.cpp文件的顶部,我只键入

#include "gmock/gmock.h"

我得到了编译错误:

gmock/gmock-matchers.h(2497):错误C2059:语法错误:'sizeof'

gmock/gmock-matchers.h(2505):请参见对正在编译的类模板实例化“testing::internal::ElementsAreMatcherImpl”的引用

gmock/gmock-matchers.h(2497):错误C2059:语法错误:')'

gmock/gmock-matchers.h(2497):错误C2143:语法错误:'{'之前缺少')'

gmock/gmock-matchers.h(2497):错误C4430:缺少类型说明符-假定为int。注意:C++不支持default-int

gmock/gmock-matchers.h(2499):警告C4183:'消息':缺少返回类型;假定是返回“int”的成员函数

我在Windows 7上使用nmake/vc++对此进行了编译,我无法理解为什么仅将核心gmock包含文件添加到测试文件中就能得到这些编译错误。有人看过这种东西吗?

最佳答案

  • 您是否在测试项目的主要功能中使用InitGoogleMock(&__ argc,__argv)来初始化google模拟?
  • 您应该仅在测试文件(以及您调用InitGoogleMock的位置)中包含“gmock/gmock.h”-无需包含gtest.h。
  • 您是否已将googletest库更新为googlemock。 (https://github.com/google/googletest)

  • 如果以上所有内容都正确,那么它应该起作用。

    关于c++ - #include “gmock/gmock.h”时发生编译错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10741322/

    10-11 15:57