RhinoMocks - не указываются все параметры в AssertWasCalled - PullRequest
36 голосов
/ 22 декабря 2009

Я использую 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 Ответ

69 голосов
/ 22 декабря 2009

2-й аргумент можно указать как Arg<T>.Is.Anything, тогда фактическое значение игнорируется.

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

...