2009-12-22 6 views
34

Estoy utilizando RhinoMocks. Ahora quiero afirmar que se llamó a alguna función, pero solo me importa uno de los argumentos. ¿Puedo hacer un AssertWasCalled donde solo especifico un argumento?RhinoMocks: no se especifican todos los parámetros en AssertWasCalled

En el siguiente ejemplo me gustaría ignorar lo que se envió al segundo argumento de SomeOtherFunction(). Es decir. Quiero comprobar que se invocó SomeOtherFunction con el primer parámetro 123 y no me importa cuál fue el segundo parámetro.

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

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

Respuesta

61

Se puede especificar el segundo argumento como Arg<T>.Is.Anything, entonces el valor real es ignorada.

Sin embargo tenga en cuenta que al usar esto necesita usar Arg para todos los argumentos. Lo que significa que debe usar en el primer argumento: Arg<int>.Is.Equal(123).

Cuestiones relacionadas