我试图谷歌模拟一个具有throw()说明符的虚方法.原始函数如下所示:
virtual ReturnValue FunctionName() const throw();
我收到编译器错误:’virtual FunctionSignature’的looser throw说明符
这是我到目前为止尝试的代码:
MOCK_CONST_METHOD0( FunctionName,ReturnValue() ); MOCK_CONST_METHOD0( FunctionName,ReturnValue() throw() ); MOCK_CONST_METHOD0( FunctionName,ReturnValue() ) throw(); // Gives a different error entirely.
我已经尝试了几乎所有我能想到的其他组合,但这些组合似乎最符合逻辑.我如何使用throw()说明符来模拟一个方法呢?
解决方法
据我所知,您必须使用“内部”GMOCK_METHOD0_宏,并使用:
GMOCK_METHOD0_(,const throw(),FunctionName,ReturnValue)
当MOCK_CONST_METHOD0(m,F)被#defineed到GMOCK_METHOD0_(,const,m,F)时,gmock/gmock-generated-function-mockers.h#644和gmock/gmock-generated-function-mockers.h#347定义了它.