Pregunta

He estado escribiendo algunos proveedores en c # que heredan de la clase providerbase. Descubrí que es difícil escribir pruebas que utilicen los proveedores, ya que la mayoría de los marcos burlones solo le permitirán simular una interfaz.

¿Hay alguna forma de simular una llamada a un proveedor que hereda de providerbase?

Si no, ¿hay algún patrón que pueda usar para implementar el simulacro de los proveedores?

¿Fue útil?

Solución

Los marcos de simulacros deberían poder crear para ti un objeto simulado basado en una clase, siempre que tenga miembros virtuales.

También puede consultar Typemock

Otros consejos

Sé que las simulaciones de Rhino también pueden simular clases, la mayoría de los otros marcos de burla tampoco deberían tener problemas con esto.
Las cosas también deben tenerse en cuenta: la clase no puede ser sellada. Debe marcar los métodos que desea simular que son virtuales y la clase necesita un constructor sin argumentos. Esto puede ser protegido, el privado no funcionará. (solo probé esto)

Tenga en cuenta que el marco de simulacros solo creará una clase que hereda de su clase y crea un objeto de ese tipo. Así se llamará a los constructores. Esto puede causar un comportamiento inesperado en sus pruebas.

RhinoMocks o Moq creará dobles de prueba tanto para las clases como para las interfaces. El tipo tiene que tener métodos virtuales o ser abstracto. El aislador Typemock soluciona esto.

Sugiero que los objetos de los que quiere simularse deberían ser abstractos ( principio de inversión de dependencia ).

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