#Moq Callback y Returns methods.

En este post te voy a explicar la diferencia entre los métodos Callback y Returns con Moq. 

Primeros pasos.

  • Estoy usando el estilo de codificación de DotNet 6. No vas a ver los métodos main o los curly braces.
  • La versión de Moq utilizada es la 4.18.1, si empleas una versión distinta, es posible que el código no funcione o tenga que escribirse de otro modo.

¿Qué es el método Callback en Moq?.

Callback te permite interceptar los parámetros de entrada de un método falseado. Para cumplir este proposito necesitas un delegado que será ejecutado cuando se haga la llamada de la dependencia. En esta función puedes implementar tu comportamiento para capturar las variables. No puedes forzar el retorno de algún valor solo con Callback.

¿Qué es el método Returns en Moq?.

Returns te permite especificar o sobreescribir que valores van a ser retornados por un método falseado. El valor que especifiques en tu método Returns, ya sea una variable o lambda, será evaluado antes de ejecutar el método.

Callback y Returns juntos.

Callback y return no son excluyentes, puedes usarlos juntos para capturar variables y sobreescribir el retorno. Si necesitas alterar los valores de entrada, entonces tendrás que capturarlos en variables fuera del contexto de la lambda del Callback.

Gustavo Sánchez