我正在尝试Google模拟具有throw()说明符的虚拟方法。原始函数如下所示:
virtual ReturnValue FunctionName() const throw();
我收到编译器错误:
looser throw specifier for 'virtual FunctionSignature'
这是到目前为止我尝试过的代码:
MOCK_CONST_METHOD0( FunctionName, ReturnValue() );
MOCK_CONST_METHOD0( FunctionName, ReturnValue() throw() );
MOCK_CONST_METHOD0( FunctionName, ReturnValue() ) throw(); // Gives a different error entirely.
我已经尝试过几乎所有我能想到的其他组合,但是这些组合似乎是最合逻辑的。 Google如何使用throw()说明符模拟方法?
最佳答案
据我所知,您必须使用“内部” GMOCK_METHOD0_
宏,并使用:
GMOCK_METHOD0_(, const throw(), , FunctionName, ReturnValue)
由于
MOCK_CONST_METHOD0(m, F)
被定义为GMOCK_METHOD0_(, const, , m, F)
,因此gmock/gmock-generated-function-mockers.h#644和gmock/gmock-generated-function-mockers.h#347对此进行了定义。关于c++ - 用throw()说明符模拟方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4922595/