Estoy tratando de familiarizarme con la metodología TDD y me he topado con lo que creo que es un problema de gallina y huevo: qué hacer si una solución de error implica el cambio de la firma de un método.Cómo usar TDD cuando la solución implica cambiar el método bajo la firma de la prueba?
Consideremos el siguiente método de firma:
string RemoveTokenFromString (string delimited, string token)
Como el nombre sugiere, este método elimina todas las instancias de un token
de delimited
y devuelve la cadena resultante.
Encuentro más tarde que este método tiene un error (por ejemplo, se están eliminando los bits incorrectos de la cadena). Así que escribo un caso de prueba que describe el escenario donde ocurre el error y me aseguro de que la prueba falla.
Al solucionar el error, encuentro que el método necesita más información para poder hacer su trabajo correctamente, y este fragmento de información solo se puede enviar como parámetro (el método bajo prueba es parte de una clase estática)
¿Qué hago entonces? Si soluciono el error, esto me obliga a cambiar la prueba unitaria. ¿Sería eso una metodología TDD "correcta"?
Amen a eso, bien dicho. –