我正在尝试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#644gmock/gmock-generated-function-mockers.h#347对此进行了定义。

关于c++ - 用throw()说明符模拟方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4922595/

10-13 05:00