次の無料関数 sig があります。
ReturnT getFirstAttributeHandle(ParentHandleT a, AttributeHandleT* b);
このような関数のアドレスを、これらのハンドルを反復処理する反復子のコンストラクターに渡す必要があります。この関数の具体的な実装は外部の依存関係にアクセスするため、それをモックする必要があります。
Google モックを使用してこの関数をモックしたいのですが、方法がわかりません。
これは私が試したものです:
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」を使用して、メンバーへのポインターを作成します
これを行う方法について何か提案はありますか?