Buenas noches, me surgió una duda, cuando yo voy aplicando la técnica TDD en la solución de un problema, es correcto probar los métodos internos de las clases? Intuyo que esto no es correcto por el tema de que si quiero cambiar la estructura de parte de mi solución voy a tener que meter mano en esas pruebas y ahí se rompería alguno de los principios de TDD (toda prueba creada para la solución al problema debe permanecer sin importar la implementación interna usada). De todos modos lo pregunto por las dudas. Gracias y saludos
Hola Leonardo,
No sé si entiendí bien tu duda, no entiendo a que te referís con "métodos internos", pero te respondo según lo que pude interpretar:
Si tenés un método A, que hace uso de otro método B, debe existir una prueba para el correcto funcionamiento de B, luego al hacer la prueba para el método A estás seguro que B te devuelve lo que esperas. En el paso de refactor para el método A, podés hacer modificaciones a la implementación, recuerda que el último paso de TDD es correr todas las pruebas incluido las anteriores (pruebas para el método B) y verificar que el refactor estuvo bien aplicado, no podés agregar pruebas si alguno de los test anteriores falla.
Como bien mencionas el principio hace referencia a que la implementación se adecue al modelo y no al revés, cosa que si cambias la implementación siga pasando los test que fueron creados originalmente ya que al crear las pruebas no pensaste en como está implementado si no en la funcionalidad por lo que no sería correcto modificar una prueba ya creada.
Saludos,
Edson