Google模拟和替代关键字

问题描述 投票:0回答:1

[Google Mock中是否有宏,可通过将f()关键字附加到宏替代项来确保对override签名进行编译时检查:

struct I
{
    virtual void f() = 0;
};

struct MockI
{
    MOCK_METHOD0(f, void()); // this will define another function if f signature changes 
                             // leading to weird runtime test failures
};
c++ overriding googlemock
1个回答
0
投票

您需要将GoogleMock升级到1.10.x版本(除非您想自己修改该库,否则。)>

1.10版本具有新的宏MOCK_METHOD,它可以使用任何功能说明符(MOCK_METHODconstnoexceptoverride,...]

final宏用法:

MOCK_METHOD

仍然可以使用旧的宏struct MockI: public I { MOCK_METHOD(void, f, (), (override)); }; ,但在使用1.10.x时,应该更喜欢使用新的方法编写新的模拟]

© www.soinside.com 2019 - 2024. All rights reserved.