Tengo un método en una interfaz:
string DoSomething(string whatever);
Quiero burlarme de esto con MOQ, para que devuelva lo que se haya pasado, algo como:
_mock.Setup( theObject => theObject.DoSomething( It.IsAny<string>( ) ) )
.Returns( [the parameter that was passed] ) ;
¿Algunas ideas?
IReturns
en Moq, se defineReturns
por 4 argumentos como máximo . ¿Alguna forma fácil de evitar eso? / Quiero decir, excepto modificar la fuente de Moq /Moq
v4.0.0.0
. resuelto :).Returns<string>
entrada se refiere a los parámetros de entrada y no a los valores que está devolviendo.Aún más útil, si tiene múltiples parámetros, puede acceder a cualquiera / a todos ellos con:
Siempre debe hacer referencia a todos los argumentos, para que coincida con la firma del método, incluso si solo va a usar uno de ellos.
fuente
ReturnsAsync
también.El
Returns<T>
método genérico puede manejar esta situación muy bien.O si el método requiere múltiples entradas, especifíquelas así:
fuente