Подтвердить что ты не робот

RhinoMocks - не указывать все параметры в AssertWasCalled

Я использую 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));  
}
4b9b3361

Ответ 1

Вы можете указать второй аргумент как Arg<T>.Is.Anything, тогда фактическое значение будет проигнорировано.

Однако обратите внимание, что с помощью этого вам нужно использовать Arg для всех аргументов. Это означает, что вам нужно использовать по первому аргументу: Arg<int>.Is.Equal(123).