¿Cuál es la diferencia entre crear una aplicación Outside In versus construirla Inside Out usando TDD?
Estos son los libros que leí sobre TDD y las pruebas unitarias:
Desarrollo basado en pruebas: por ejemplo Desarrollo basado en
pruebas: una guía práctica: una guía práctica
Soluciones del mundo real para el desarrollo de marcos PHP de alta calidad y desarrollo basado en
pruebas de aplicaciones en Microsoft.
Patrones de prueba de NET xUnit: Código de prueba de refactorización
El arte de las pruebas unitarias: con ejemplos en
software orientado a objetos en crecimiento .Net , guiado por pruebas ---> Este fue realmente difícil de entender ya que JAVA no es mi idioma principal :)
Casi todos explicaron los conceptos básicos de TDD y las pruebas unitarias en general, pero con poca mención de las diferentes formas en que se puede construir la aplicación.
Otra cosa que noté es que la mayoría de estos libros (si no todos) ignoran la fase de diseño al escribir la aplicación. Se centran más en escribir los casos de prueba rápidamente y dejar que el diseño emerja por sí mismo.
Sin embargo, me encontré con un párrafo en xUnit Test Patterns que discutía las formas en que las personas se acercan a TDD. Hay 2 escuelas por ahí fuera, en contra adentro hacia afuera .
Lamentablemente, el libro no da más detalles sobre este punto. Deseo saber cuál es la principal diferencia entre estos 2 casos.
¿Cuándo debo usar cada uno de ellos?
Para un principiante de TDD, ¿cuál es más fácil de entender?
¿Cuáles son los inconvenientes de cada método?
¿Existe algún material que discuta este tema específicamente?