No soy nuevo en la codificación. He estado codificando (en serio) durante más de 15 años. Siempre he tenido algunas pruebas para mi código. Sin embargo, en los últimos meses he estado aprendiendo diseño / desarrollo basado en pruebas (TDD) usando Ruby on Rails . Hasta ahora, no estoy viendo el beneficio.
Veo algunos beneficios al escribir pruebas para algunas cosas, pero muy pocas. Y aunque me gusta la idea de escribir la prueba primero, encuentro que paso mucho más tiempo tratando de depurar mis pruebas para que digan lo que realmente quiero decir que depurar el código real. Esto probablemente se deba a que el código de prueba a menudo es sustancialmente más complicado que el código que prueba. Espero que esto sea solo inexperiencia con las herramientas disponibles ( RSpec en este caso).
Sin embargo, debo decir que, en este punto, el nivel de frustración mezclado con la decepcionante falta de rendimiento es más que inaceptable. Hasta ahora, el único valor que veo de TDD es una creciente biblioteca de archivos RSpec que sirven como plantillas para otros proyectos / archivos. Lo cual no es mucho más útil, tal vez menos útil, que los archivos de código del proyecto real.
Al leer la literatura disponible, me doy cuenta de que TDD parece ser un tiempo masivo por adelantado, pero al final vale la pena. Me pregunto, ¿hay ejemplos del mundo real? ¿Esta frustración masiva alguna vez vale la pena en el mundo real?
Realmente espero no haberme perdido esta pregunta en otro lugar aquí. Busqué, pero todas las preguntas / respuestas tienen varios años en este momento. Fue una rara ocasión cuando encontré un desarrollador que diría algo malo sobre TDD, por lo que he pasado tanto tiempo en esto como lo he hecho. Sin embargo, noté que nadie parece señalar ejemplos específicos del mundo real. Leí una respuesta que decía que el tipo que depuró el código en 2011 le agradecería por tener un conjunto completo de pruebas unitarias (creo que ese comentario se hizo en 2008).
Entonces, me pregunto, después de todos estos años, ¿finalmente tenemos algún ejemplo que muestre que la recompensa es real? ¿Alguien realmente heredó o volvió al código que fue diseñado / desarrollado con TDD y tiene un conjunto completo de pruebas unitarias y realmente sintió una recompensa? ¿O descubriste que estabas pasando tanto tiempo tratando de descubrir qué estaba probando la prueba (y por qué era importante) que simplemente arrojaste todo el desastre y te metiste en el código?