Open pr3ssh opened 4 years ago
Creo que te refieres a como testear un template method...
Si es asi, se mantiene la norma de testear los privados a traves de los metodos publicos Lo que hay que plantearse es si cada uno de estos metodos forman parte de la clase (siguiendo el principio de Single responsability) o deben estar en otra clase que puedes probar en aislamiento (Unit test) y que es un colaborador de la clase que tiene el template method... en integracion puedes mockearlo, espiarlo etc....
Aun asi si quieres testear esos metodos lo mejor es usar un spia que intercepta la llamada y al que se puede interrogar...
a mi personalmente me parece una basura de tecnica hacerlo asi por que ata los test a la estructura interna d la clase y cuando eso pasa el codigo queda como esclerotizado, agarrotado, dificil de cambiar.
Voy a darle una vuelta a la posibilidad que me comentas de que esos métodos puedan estar en otra clase como indica SOLID y que formen parte de la clase con TemplateMethod como colaborador. Gracias.
¿Algo interesante que debiera saber sobre colaboradores?