RhinoMocks - 未在AssertWasCalled中指定所有参数

sti*_*k81 36 c# unit-testing rhino-mocks

我正在使用RhinoMocks.现在我想声明一些函数被调用,但我只关心其中一个参数.我可以做一个AssertWasCalled我只指定一个参数的地方吗?

在下面的例子中,我想忽略发送到SomeOtherFunction()的第二个参数的内容.即我想检查SomeOtherFunction是否使用第一个参数123调用,我不关心第二个参数是什么.

[Test]
public void SomeTest()
{
    var myMock = MockRepository.GenerateMock<ISomeInterface>();    
    var myObj = new MyClass(myMock); 
    myObj.foo()

    myMock.AssertWasCalled(factory => factory.SomeOtherFunction(123, null));  
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*ren 69

您可以将第二个参数指定为Arg<T>.Is.Anything,然后忽略实际值.

但请注意,使用此方法需要对所有参数使用Arg.这意味着您需要在第一个参数上使用:Arg<int>.Is.Equal(123).