visual unitarias unit test studio pruebas hacer ejemplo como unit-testing mocking rhino-mocks stubbing

unit-testing - test - pruebas unitarias visual studio



RhinoMocks: un método que devuelve un parámetro (3)

Puede usar el método expect con una devolución de llamada para devolver el valor que está buscando. Lo siguiente devolverá nulo.

_service.Expect(o => o.Method(null, null, null)) .Callback((object parm1, object parm2, object parm3) => { return parm3; });

No estoy seguro de si puede usar la devolución de llamada en Stub.

Estoy usando RhinoMocks, necesito un método y siempre tengo que devolver el tercer parámetro, independientemente de lo que se transmita:

_service.Stub(x => x.Method(parm1, parm2, parm3)).Return(parm3);

Obviamente, no es tan fácil. No siempre sé qué van a ser los parms, pero sé que siempre quiero devolver el tercero.


Esto funcionó para mí:

_service .Stub(x => x.Method(Arg<string>.Is.Anything, ... )) .Return(null) // ... or default(T): will be ignored but RhinoMock requires it .WhenCalled(x => { // This will be used as the return value x.ReturnValue = (string) x.Arguments[0]; });


Puede proporcionar una implementación para un método con el controlador Do () :

Func<TypeX,TypeY,TypeZ,TypeZ> returnThird = (x,y,z) => z; mock.Expect(x => x.Method(null, null, null)).IgnoreArguments().Do(returnThird);

Tenga en cuenta que TypeZ aparece dos veces porque es tanto un tipo de argumento de entrada como el tipo de retorno.