在RhinoMocks中创建存根方法时如何使用实参数?

Ily*_*gan 7 c# rhino-mocks stubbing

我想创建以下接口的存根:

interface IUnitOfWork
{
   void DoInTransaction(Action method);
}
Run Code Online (Sandbox Code Playgroud)

在存根对象中,我想要DoInTransaction做的就是运行method().

就像是:

// pseudo-code
unitOfWorkStub.Stub(x => x.DoInTransaction(method)).Do(method()) 
Run Code Online (Sandbox Code Playgroud)

是否可以使用RhinoMocks创建这种存根?如何才能做到这一点?

Dan*_*rth 16

用这个:

unitOfWorkStub.Stub(x => x.DoInTransaction(Arg<Action>.Is.Anything))
              .WhenCalled(x => ((Action)x.Arguments[0])());
Run Code Online (Sandbox Code Playgroud)