我有以下免费功能信号:
ReturnT getFirstAttributeHandle(ParentHandleT a, AttributeHandleT* b);
我需要将这样一个函数的地址传递给迭代这些句柄的迭代器的构造函数。由于此函数的具体实现访问外部依赖项,我需要模拟它。
我想使用 google mock 来模拟这个函数,但我不确定如何。
这是我尝试过的:
class IAttributeIterator
{
public:
virtual ReturnT getFirstAttributeHandle(ParentHandleT a, AttributeHandleT* b) = 0;
};
class MockAttributeIterator : public IAttributeIterator
{
public:
MOCK_METHOD2(getFirstAttributeHandle, ReturnT(ParentHandleT a, AttributeHandleT* b));
};
然后是这样的:
MockAttributeIterator i;
AttributeIterator iter = AttributeIterator(i.getFirstAttributeHandle);
iter++;
但这不会编译,给出错误:
'MockAttributeIterator::getAttribute':函数调用缺少参数列表;使用 '&MockAttributeIterator::getAttribute' 创建指向成员的指针
关于我如何做到这一点的任何建议?