8

我正在尝试将 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++ 不支持默认整数

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

我在 Windows 7 上使用 nmake/vc++ 编译它,我无法理解为什么我会通过将核心 gmock 包含文件添加到我的测试文件中来获得这些编译错误。有没有人见过这种东西?

4

2 回答 2

4
  1. 您是否在测试项目的主要功能中使用 InitGoogleMock(&__argc, __argv) 初始化谷歌模拟?
  2. 你应该在你的测试文件(以及你调用 InitGoogleMock 的地方)中只包含“gmock/gmock.h”——不需要包含 gtest.h。
  3. 您是否已将 googletest 库更新为 googlemock。(https://github.com/google/googletest

如果以上所有事情都是真的,它应该可以工作。

于 2016-03-22T14:43:25.827 回答
0
Even after verifying the above steps(last step need information) still im facing the same error.

g++ MockTest.cpp -lgtest
MockTest.cpp:1:10: fatal error: gmock/gmock.h: No such file or directory
    1 | #include "gmock/gmock.h"
      |          ^~~~~~~~~~~~~~~
compilation terminated.
于 2022-02-17T05:25:33.207 回答