2011-02-07 12 views
23

He estado usando ruby ​​exclusivamente durante aproximadamente un mes y realmente me encanta. Sin embargo, estoy teniendo un tiempo increíblemente difícil de usar, o incluso aprender TDD. Mi cerebro simplemente no funciona de esa manera ...¿Cómo aprender TDD con Ruby?

Realmente, realmente quiero aprender TDD, pero para ser sincero, estoy un poco confundido. Todos los artículos que encuentro al buscar en Google son en su mayoría específicos de Rails, lo que no me interesa porque quiero aprender cómo hacer pruebas eficientes para cualquier aplicación de ruby, desde el simple script de un solo archivo hasta la gema complicada, no para Aplicaciones web. Además, hay muchos frameworks y tan pocos tutoriales para comenzar.

¿Alguien podría darme algún consejo sobre cómo aprender TDD para que al menos pueda empezar a considerarme un rubí aspirante?

+0

Aunque la mayoría de las respuestas se refieren a recursos externos, la pregunta no es necesaria, ni una buena respuesta a la pregunta requiere recursos externos. Por lo tanto, no creo que esto deba cerrarse como una solicitud de recursos fuera del sitio. –

Respuesta

11

La mejor forma de aprender TDD es simplemente haciéndolo. Sugiero que construyas un nuevo proyecto usando TDD. Esto significa no escriba ningún código que no sea de prueba a menos que tenga una prueba de falla.

Te hará pensar en escribir pruebas: quiero escribir este código, ¿cómo puedo escribir una prueba para que pueda escribirlo?

Le mostrará la naturaleza en capas de las pruebas. En lugar de querer un nombre que se requiere y no puede contener números. primero probará la configuración y la lectura de un nombre, la prueba que requiere el nombre, la prueba no debe contener números, que pensar si tiene más restricciones y probarlas.

Recuerde:

  • escribir una prueba antes de escribir el código
  • Asegúrese de que no pasa la prueba! Es importante saber que está poniendo a prueba la lógica es correcta
  • Antes de escribir la siguiente prueba asegúrese de que todas las pruebas tienen éxito
  • Siempre se puede limpiar su código, si las pruebas evitan pérdidas de tiempo no cambió el diseño
14

Probar RubyKoans.

+1

RubyKoans son geniales porque enseñan ruby ​​según las pruebas. Definitivamente una buena manera de aprender TDD por ejemplo. También se recomienda: [Ruby Best Practices] (http://www.amazon.com/Ruby-Best-Practices-Gregory-Brown/dp/0596523009/ref=sr_1_1?s=books&ie=UTF8&qid=1297070444&sr=1-1) – Mobbit

5

Es complicado entender TDD (y BDD) pero el libro RSpec Book - BDD me ayudó mucho. El desarrollo impulsado por el comportamiento no es exactamente lo mismo que el TDD, pero está cerca y tienes que pensar de manera similar.

3

Una prueba a la vez. Ese es el único secreto, el resto es sólo la práctica, a pesar de que tendrá que hacer mucho de la práctica ;-)

Ya tiene lo suficiente para empezar: Ruby tiene la biblioteca test/unit, que es más que suficiente para Empezar con.

Pruebe Google para Ruby test/unit y Ruby TDD. Un par de puntos de partida útiles que encontré son here y here.

Comenzaría la práctica con un proyecto completamente nuevo, preferiblemente uno de banda lateral en el que pueda progresar más despacio al principio. Sea realmente estricto: todo el código debe escribirse como resultado de una prueba fallida. Recuerda la tercera parte del mantra "rojo-verde-refactor": pronto te meterás en problemas sin ella (créeme, he estado allí).

Una vez que sientes que estás comenzando a sentirte cómodo con la técnica (un signo puede ser que notes que realmente no tienes un ciclo de prueba de depuración de código), entonces comienza a buscar algunas alternativas: rspec es la principal, pero hay otros (riot, minitest es el valor predeterminado Ruby 1.9, si estás en 1.8.x)

1

yo he encontrado el screencast PeepCode RSpec muy útil, que le dan una buena idea de lo para probar, además, te ayudan a comenzar con RSpec rápidamente. Me tomó un tiempo comenzar a TDD, ¡pero vale la pena!

3

Todavía recomiendo TDD by Example por Kent Beck. Es una lectura fácil y te da todos los elementos básicos.

1

Estoy de acuerdo con las respuestas sobre la lectura de "TDD por ejemplo" de Kent Beck y sobre tener un proyecto real en el que te fuerces a hacerlo.

También puede encontrar Back to Basics: Writing Unit Tests First útil como referencia de Ruby.