与えられたインターフェース
class IFooable {
virtual void Fooable() = 0;
};
class IFoo {
virtual void Foo(IFooable* pFooable) = 0;
};
そしてグールモックモック
class TMockFoo : public IFoo {
MOCK_METHOD1(Foo, void (IFooable*));
};
Fooable()
モックされたメソッドの引数を呼び出すアクションを指定する最も簡単な方法は何Foo()
ですか?
私が試してみました
TMockFoo MockFoo;
ON_CALL(MockFoo, Foo(_))
.WithArg<0>(Invoke(&IFooable::Fooable));
しかし、これはコンパイルされません。これはInvoke()
、引数が 1 つの場合、メンバー関数ではなく、自由な関数が必要になるためです。
を使用boost::bind
するとおそらくうまくいくはずですが、必ずしもコードが読みやすくなるとは限りません。custom を書く前にAction
、完全に明らかな何かを見逃していないかどうかを確認したかったのです。