我正在使用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));
}
答案 0 :(得分:69)
您可以将第二个参数指定为Arg<T>.Is.Anything
,然后忽略实际值。
但请注意,使用此方法需要对所有参数使用Arg。这意味着您需要在第一个参数上使用:Arg<int>.Is.Equal(123)
。