RhinoMocks - 获取被调用函数的参数

sti*_*k81 11 c# unit-testing rhino-mocks mocking

使用RhinoMocks - 我可以获取被调用函数的参数吗?我的意思是; 我可以从函数调用中获取一些未知参数吗?

我有一个模拟,我希望在此调用一些函数.我知道其中一个参数,但另一个是未知的,因为它来自使用模拟并调用函数的类.更具体地说 - 在这种情况下 - 未知参数是lambda函数.这是一个回调函数,应该在函数执行完毕后调用.由于模拟阻止调用回调,我想获取它并自己调用它.

所以; 我想检查函数是否被调用.我想确保一些论点是预期的论点.我希望得出未知的论据,然后对它们进行一些操作.

假设两个参数都是整数(为简单起见),我想做这样的事情:

int unknownInt; 
_fakeSomething.AssertWasCalled(factory => factory.Foo(1, out unknownInt));
// then play around with unknownInt.. 
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?我看到有一个Arg.Out,但是不能让它工作..

注意:更新了问题,因为它似乎具有误导性.

Dar*_*rov 15

Arg<string>.Matches(arg => you got the argument here...);
Run Code Online (Sandbox Code Playgroud)

更新:

要在第一次调用Foo方法时获取第二个参数_fakeSomething:

string someArg = null;
var args = _fakeSomething.GetArgumentsForCallsMadeOn(
    x => x.Foo(0, 0), 
    x => x.IgnoreArguments()
);
var int = (int)args[0][1];
Run Code Online (Sandbox Code Playgroud)