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