给定接口
class IFooable {
virtual void Fooable() = 0;
};
class IFoo {
virtual void Foo(IFooable* pFooable) = 0;
};
和 goole mock
class TMockFoo : public IFoo {
MOCK_METHOD1(Foo, void (IFooable*));
};
指定调用Fooable()
模拟方法参数的操作的最简单方法是Foo()
什么?
我试过了
TMockFoo MockFoo;
ON_CALL(MockFoo, Foo(_))
.WithArg<0>(Invoke(&IFooable::Fooable));
但这不会编译,因为Invoke()
有一个参数需要一个自由函数,而不是成员函数。
使用boost::bind
应该可能工作,但不一定会使代码太可读。在我写一个 custom 之前Action
,我想检查一下我是否没有遗漏一些非常明显的东西。