【问题标题】:Make sure that mocked GTest method overrides virtual method确保模拟的 GTest 方法覆盖虚拟方法
【发布时间】:2020-08-31 05:24:01
【问题描述】:

我想确保模拟方法覆盖基类虚拟方法。在生成标记为override的方法时,是否可以使用MOCK_METHOD的方式?

【问题讨论】:

    标签: c++ overriding virtual googletest


    【解决方案1】:

    您可以通过像这样将 specs 参数指定给 MOCK_METHOD 来做到这一点,

    MOCK_METHOD(void, foo, (), (override));
    

    引用https://github.com/google/googletest/blob/master/googlemock/docs/cook_book.md#creating-mock-classes

    前3个参数只是方法声明,分成3个 部分。第 4 个参数接受一个封闭的限定符列表,它 影响生成的方法:

    • const - 使模拟方法成为 const 方法。如果重写 const 方法,则为必需。
    • 覆盖 - 用覆盖标记方法。建议在覆盖虚拟方法时使用。

    这是 Godbolt 上的 demo

    【讨论】:

    • 谢谢!这正是我需要的
    猜你喜欢
    • 2014-01-05
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 2011-05-21
    • 2012-10-26
    • 2014-03-18
    相关资源
    最近更新 更多