2009-12-22 18 views
34

Używam RhinoMocks. Teraz chcę potwierdzić, że wywołano jakąś funkcję, ale zależy mi tylko na jednym z argumentów. Czy mogę wykonać AssertWasCalled, w którym podaję tylko jeden argument?RhinoMocks - Brak określenia wszystkich parametrów w AssertWasCalled

W poniższym przykładzie chciałbym zignorować to, co zostało wysłane do drugiego argumentu SomeOtherFunction(). To znaczy. Chcę sprawdzić, czy SomeOtherFunction został wywołany z pierwszym parametrem 123 i nie obchodzi mnie, jaki był drugi parametr.

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

    myMock.AssertWasCalled(factory => factory.SomeOtherFunction(123, null)); 
} 

Odpowiedz

61

Możesz podać drugi argument jako Arg<T>.Is.Anything, wtedy aktualna wartość zostanie zignorowana.

Należy jednak pamiętać, że używając tej opcji, należy użyć Arg dla wszystkich argumentów. Co oznacza, że ​​musisz użyć pierwszego argumentu: Arg<int>.Is.Equal(123).

Powiązane problemy