GMOCK错误:不允许使用MOCK_METHOD11
GMOCK Error: Is MOCK_METHOD11 not allowed
当我模拟一个有11个参数的函数时,它会给出一条错误消息:
错误:"function_name"不是类型
我正在使用
MOCK_METHOD11(function_name,int(param1,param2,....,param11);
是不是有11个参数的函数不能被嘲笑?
GMock最多支持10个(包括)模拟函数参数。因此,您不能将其用于开箱即用的功能。你可以做些什么来模拟这种方法:
-
(首选)重构此方法以减少参数数量。如此多的参数使得该方法难以控制和理解。
-
引入中间代理接口,该接口将具有只接受10个参数的类似方法。这很容易实现:
class OriginalInterface { public: virtual void method(int param1, int param2) = 0; }; class ProxyInterface : public OriginalInterface { public: virtual void method(int param1, int param2) { method1(param1); method2(param2); } virtual void method1(int param1) = 0; virtual void method2(int param2) = 0; }; // Now you mock on ProxyInterface class MockInterface : public ProxyInterface { public: MOCK_METHOD1(method1, void(int)); MOCK_METHOD1(method2, void(int)); };
在我的示例中,我将具有2个参数的方法拆分为2个方法。我认为这个想法很清楚。
3。(并非最佳)您可以尝试更改gmock源以添加METHOD11 typedefs。。
相关文章:
- 如何使用Google Mock来模拟gettimeofday()
- gmock / google-mock发出警告,并且通过模拟异常未通过测试
- MOCK一个接受unique_ptr的方法
- 如何期望通过使用Google Test(Mock)以特定频率调用函数
- 静态指针指向这个为mock for googletest定义的类内部
- Google Mock:在目标类的构造函数中实例化的模拟私有变量成员
- Google Mock Expect_call将退休另一个期望
- Google-Mock 一个已经声明的方法
- 如何使用shared_ptr从外部提供mock对象
- Google Mock - 使用 CoTaskMemFree 时,测试返回没有结果
- 如何在内联回调函数中使用EXPECT_EQ和其他Google Mock语句
- C Google Mock -Expect_Call() - 期望在不直接调用时无法正常工作
- C++ 使用Google Mock进行高性能单元测试
- 将GoogleMock与Boost::Shared Pointers一起使用时泄漏的Mock对象
- HippoMocks坚持要摧毁Mock
- GoogleMock让我在mock类中实现析构函数吗
- 我用纯虚拟方法和Google Mock做错了什么
- 使用 Google C++ 模拟框架 (Google Mock) (V1.5) 将任意参数传递给调用的方法
- 使用 google mock 模拟转换运算符 int()
- QTestLib 单元测试框架 + Gmock (Create QTCPServer语言 - Mock Object).