Ayuda con la sintaxis de los moles para probar el método privado con genéricos

StackOverflow https://stackoverflow.com/questions/7340507

  •  27-10-2019
  •  | 
  •  

Pregunta

Tengo una firma para un método que se ve así: Ienumerable privado buildCustomerUpdatePlan (enumere localCachechangedCustomers, List CRMChangedCustomers) {}

Cuando miro el objeto molado, la sintaxis (Intellisense) de cómo llamar al método y probarlo es absolutamente confuso y cada vez que le doy una oportunidad, recibo errores de compilación. He revisado los tutoriales básicos proporcionados en el sitio de MSFT, pero simplemente no obtengo cómo probar un método privado usando lunares o cómo lidiar con el tipo de retorno y múltiples parámetros.

Desafortunadamente, no he podido encontrar otros buenos guisos o hilos que demuestren una muestra más compleja que solo trabajar con un método ADD () simple que escupe un int y acepta un INT. :(

¿Puntas?

¿Fue útil?

Solución

En su proyecto de prueba, primero asegúrese de agregar un ensamblaje de moles correspondiente a la prueba de ensamblaje. También querrás agregar un using Declaración del ensamblaje bajo prueba con .Moles Agradecido para que pueda usar el ensamblaje molado.

Moles cambia los nombres de las clases y métodos a la forma M[Original Class Name].[Original Method Name][typeof param1][typeof param2].... En su caso, un desvío para ese método podría parecer MClass.BuildCustomerUpdatePlanListList = (List x, List y) => { [code]};. Que define un método anónimo que toma dos ListS como parámetros y pondrías cualquier código que quisiera en la función. Solo asegúrate de devolver un IEnumerable en ese método anónimo.

Aquí hay un ejemplo usando lunares para desviar Directory.GetFiles:

using System.IO.Moles;
[assembly: MoledType(typeof(System.IO.Directory))]
...
    MDirectory.GetFilesStringString = (string x, string y) => new string[0];

Desde el Directory La clase es miembro de System.IO yo suelo using System.IO.Moles; Para especificar que quiero usar miembros de la Asamblea.

Moles requiere que especifique los tipos de MODO: [assembly: MoledType(typeof(System.IO.Directory))] hace el trabajo.

Finalmente, Directory.GetFiles Toma dos cadenas como parámetros y devuelve una matriz de cadenas. Para desviar el método para devolver el equivalente de los archivos no encontrados, el método molado solo devuelve new string[0]. Se necesitan aparatos ortopédicos rizados si desea múltiples líneas en el método anónimo y, si no se desvanece un método nulo, una declaración de retorno que coincide con el tipo de método original volvería.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top