微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – gmock和转发声明的类

假设我有这个类,类型管理器在Base.h中向前声明.

#include <Base.h>

class MockBase : public Base
{
public:
    MOCK_CONST_METHOD0( manager,const Manager&( ) );
    ...
};

我不打算在我的测试中使用这个方法,所以我不想在测试文件中包含Manager类的定义.

但我认为,虽然编译gmock尝试准备错误消息,并深入其内部它需要管理器变量的地址,我有一个错误

error C2027: use of undefined type ‘Manager’
\external\googlemock\gtest\include\gtest\gtest-printers.h 146 1

我可以以某种方式避免包含具有我不会使用的方法的前向声明类型定义的文件吗?

解决方法

我通过定义PrintTo函数解决了这个问题,因此gtest不会尝试使用导致问题的TypeWithoutFormatter函数.这是不幸的,我不确定什么是正确的解决方案.

namespace Foo { void PrintTo(const Bar& x,::std::ostream* os) { *os << "Bar " << &x; }}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐