2008-09-19 18 views

Respuesta

9

Tienes que crear una subclase que implemente los métodos abstractos (con métodos vacíos), pero ninguno de los concretos. Esta subclase debe ser solo para pruebas (nunca debe ir a su código de producción). Simplemente ignore los métodos abstractos anulados en sus pruebas unitarias y concéntrese en los métodos concretos.

+2

Además, si termina teniendo muchos de estos (más de 2 o 3) debería considerar utilizar un marco de burla como Rhino.Mocks o Moq (gratis) o TypeMock (comercial) y hacer un "PartialMock" que automatizará este proceso para ti – chadmyers

0

¿Alguna razón para no incluir eso en las pruebas de una de las instancias?

Si eso no funciona, probablemente podría crear una subclase solo para probar sin ninguna funcionalidad propia.

+0

Una razón puede ser que no estamos definiendo las clases concretas, solo el resumen. Alternativamente, es bueno saber cuándo falla la prueba que no se debe a uno de los métodos abstractos. –

1

Lo primero que viene a la mente es probar esos métodos en una clase infantil concreta.

0

siempre uso Trozo/objeto Mock

0

Hay que definir y crear una clase de prueba concreta de que inhereits de lo abstracto. Por lo general, será una luz suave que no hace más que pasar llamadas.

3

Utilice Rhino Mocks, puede generar implementaciones de la clase abstracta en tiempo de ejecución y puede llamar a los métodos no abstractos.

Cuestiones relacionadas