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

时间:2009-12-22 15:01:11

标签: 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));  
}

1 个答案:

答案 0 :(得分:69)

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

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