Estoy familiarizado con los conceptos (tomé clases de prueba en la universidad), pero todavía no estoy seguro de cómo usarlos realmente, ya que nunca trabajé en un proyecto TDD "real".
Estoy a punto de comenzar el desarrollo de un proyecto usando Ruby on Rails (muy probablemente usando 2.3). Esta aplicación se utilizará para administrar datos, usuarios y algunos archivos. Al principio no será demasiado complicado, pero podría escalar mucho en los próximos 6 meses, así que creo que este es el momento adecuado para entrar más en TDD.
Tengo una idea básica sobre cómo hacerlo, pero todavía necesito algunos consejos y consejos:
¿Qué artículo de Ruby on Rails TDD 101 debería leer?
¿Qué necesito para probar?
¿Qué gema / complemento debo usar?
¿Debo usar rspec ? ¿Algo más?
Una vez que tengo todas mis clases de prueba, ¿cómo voy a implementarlas? (por ejemplo: integración continua)
¿Cuánto tiempo consume TDD realmente?
¿Necesito leer un libro sobre esto o puedo obtener todo simplemente jugando y leyendo tutoriales en línea? Si necesito leer un libro, ¿qué libro?
Me gusta aprender con ejemplos, así que alguien podría decirme cómo iría y tomar un enfoque TDD para resolver este problema:
Tengo empresas Tengo contactos Un contacto se puede vincular a 1 empresa. Una empresa puede tener múltiples contactos. Quiero crear formas de crear contactos, empresas y vincular contactos a empresas.
No tiene que usar este ejemplo en su respuesta, pero sería útil :)
fuente
Produje una serie de videos de 6 episodios que se enseñó como clase pública en San Francisco en el verano de 2010. El material cubre las pruebas y la eficiencia del desarrollador en Rails 2.3 usando RSpec 1.3. Ligeramente anticuado, pero los conceptos principales se aplican a Rails 3 con Rspec 2.x
http://www.rubyfocus.biz/class_video/2010/07/19/rails_tdd_class_1.html
fuente
Recomiendo este libro: Tutorial de Ruby on Rails . Ya casi termino con eso. El libro usa TDD todo el libro. ¡Darle una oportunidad!
fuente
Recomiendo este libro: Desarrollo web ágil con rieles
fuente
TDD se trata de escribir pruebas primero. Básicamente, esto te obliga a escribir tu propio cliente antes de escribir el código de tu aplicación. El ciclo generalmente es escribir una prueba para una API que no existe, ejecutar la prueba esperando que falle, vaya a escribir su código API, ejecute su prueba nuevamente y asegúrese de que pase. Luego escribe tu próxima prueba ... y así sucesivamente.
También te puede interesar esta guía de Rails .
fuente
Yo suelo :
fuente
Siempre me ha gustado debería haberlo hecho .
La razón por la que siempre he favorecido el desarrollo de TDD es que se enfoca en cómo implementaré un fragmento de código específico. Tengo la sensación anecdótica de que cada vez que me adhiero más a los principios de TDD, paso menos tiempo trabajando nuevamente más tarde. Sin embargo, la cantidad de tiempo invertido depende de qué tan bien escribas las pruebas unitarias. Si las pruebas unitarias no capturan el comportamiento esperado, se desperdicia todo el tiempo dedicado a ellas.
fuente