Cuando utiliza la composición, puede simular los otros objetos de los que depende su clase bajo prueba, pero cuando usa la herencia , no puede simular la clase base. (? O ¿verdad)¿Cómo pruebo la unidad de objetos heredados?
general trato de prefer composition over inheritance, pero a veces la herencia realmente parece ser la mejor herramienta para el trabajo - bueno, al menos hasta que llega a la unidad de pruebas.
Entonces, ¿cómo se prueba la herencia? ¿O simplemente lo basura como no comprobable y usa composición en su lugar?
Nota: Principalmente uso PHP y PHPUnit, así que la ayuda en ese lado es muy apreciada. Pero también sería interesante saber si hay soluciones a este problema en otros idiomas.
Hay un [buen ejemplo] (http://stackoverflow.com/questions/58969/best-way-to-unit-test-a-website-with-multiple-user-types-with-phpunit#63442) para [la solución dada por munificent] (http://stackoverflow.com/questions/100795/how-do-i-unit-test-inheriting-objects#116340). Deje que la jerarquía de prueba se parezca a su jerarquía de clases. – GrGr
No veo cómo sería posible burlarse de una superclase. Eso tendría que ser una función de idioma ihmo. ¿Qué estás tratando de probar exactamente? Para mí, parece que la reflexión podría ser útil para ti? – Robse
Tampoco sé cómo sería posible burlarse de una clase para padres. Por eso estoy preguntando. Pero no creo que sea imposible, hay muy pocas cosas en las computadoras. –