valores uso tipos retorna metodos metodo mandar llamar funciones firma ejemplo definicion como c# mocking moq

uso - tipos de metodos en c#



Valor de retorno que se pasó a un método (3)

Aún más útil, si tiene múltiples parámetros, puede acceder a cualquiera o todos ellos con:

_mock.Setup(x => x.DoSomething(It.IsAny<string>(),It.IsAny<string>(),It.IsAny<string>()) .Returns((string a, string b, string c) => string.Concat(a,b,c));

Siempre debe hacer referencia a todos los argumentos para que coincidan con la firma del método, incluso si solo va a utilizar uno de ellos.

Tengo un método en una interfaz:

string DoSomething(string whatever);

Quiero burlarme de esto con MOQ, para que devuelva lo que fue pasado, algo como:

_mock.Setup( theObject => theObject.DoSomething( It.IsAny<string>( ) ) ) .Returns( [the parameter that was passed] ) ;

¿Algunas ideas?


El método Returns<T> genérico puede manejar esta situación muy bien.

_mock.Setup(x => x.DoSomething(It.IsAny<string>())).Returns<string>(x => x);

O si el método requiere múltiples entradas, especifíquelas así:

_mock.Setup(x => x.DoSomething(It.IsAny<string>(), It.IsAny<int>())).Returns((string x, int y) => x);


Puedes usar un lambda con un parámetro de entrada, así:

.Returns((string myval) => { return myval; });

O un poco más legible:

.Returns<string>(x => x);