¿Cuál es la diferencia entre crear una aplicación Outside In frente a compilarla Inside Out utilizando TDD?
Estos son los libros que leí sobre TDD y pruebas de unidad:
Desarrollo guiado por pruebas: por ejemplo
Desarrollo guiado por pruebas: una guía práctica: una guía práctica
Soluciones reales para el desarrollo de aplicaciones y marcos PHP de alta calidad
Desarrollo guiado por pruebas en Microsoft .NET
xUnit Test Patterns: Refactoring Código de prueba
El arte de las pruebas unitarias: con ejemplos en .Net
< a href="http://rads.stackoverflow.com/amzn/click/0321503627"> Creciente software orientado a objetos, guiado por pruebas --- > Este fue realmente difícil de entender ya que JAVA no lo es t mi idioma principal :)
Casi todos ellos 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, encontré 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í Outside In vs Inside Out .
Lamentablemente el libro no elabora más 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 en TDD, ¿cuál es más fácil de entender?
¿Cuáles son los inconvenientes de cada método?
¿Hay algún material por ahí que discuta este tema específicamente?