2011-04-03 36 views
7

Soy nuevo en las pruebas de Cucumber y estoy tratando de entender cuándo usar Cucumber y cuándo usar RSpec. Para mis modelos, sé que debería probarlos con RSpec, y sé que no necesito escribir especificaciones de solicitud de RSpec si escribo historias de Pepino. Lo que no sé cuando usar lo que es con vistas y controladores. ¿Debo usar RSpec para probar mis vistas y controladores, o puedo omitirlos porque estoy usando Pepino para mi prueba de nivel superior? ¡Cualquier consejo sería muy apreciado! ¡Gracias!Cuándo usar Pepino y cuándo usar RSpec?

Respuesta

5

Utilizo RSpec para impulsar el desarrollo y las pruebas de mis modelos y, en cierta medida, de mis controladores, y Cucumber para impulsar el desarrollo y la prueba de mis vistas (y su posterior integración con los controladores).

No me siento escribiendo Las pruebas de pepino me permiten "omitir" la escritura de pruebas de RSpec porque se produce mucho desarrollo en la capa de modelo antes de que se creen las vistas.

+0

¿En qué medida envías mensajes de texto a tus controladores con RSpec? – agentbanks217

+0

Hoy en día, muy poco, ya que trato de mantener tanta lógica en la capa de modelo, pero si por alguna razón hay un poco de lógica en una acción de controlador, me gusta escribir una especificación para cubrirla (para mi propia cordura en realidad). – Ant

1

Si sigue escribiendo Escenarios de pepino en lugar de pruebas unitarias, entonces probablemente encontrará que sus pruebas tardan en ejecutarse. Si las pruebas son lentas, probablemente no las ejecutará con mucha frecuencia, por lo que su ritmo de desarrollo se ralentizará.

Puede usar RSpec para las pruebas de integración que funcionan en el mismo nivel que Cucumber. Si necesita compartir y analizar características con no desarrolladores, entonces Cucumber es de gran ayuda. Pero incluso si eres un desarrollador en solitario, Cucumber te ayuda actuando como un "guardián mental" entre el comportamiento que necesitas y la implementación subyacente.

La práctica estándar que la mayoría de la gente sigue es escribir extensas pruebas unitarias para el modelo, pruebas mínimas para el controlador, y muy raramente pruebas de unidad para la vista. Luego, usaría Cucumber para verificar que todo esté interactuando correctamente (asegúrese de que los escenarios cubran los bucles/condiciones en los controladores y las vistas).

0

Solo una pequeña adición que podría ser útil para usted. Mucha gente piensa (y yo también) que el pepino es más una molestia que un marco de prueba práctico para el programador. Siempre y cuando no tenga que cooperar discutiendo escenarios con clientes que no saben mucho sobre programación, le recomiendo encarecidamente que no use pepino. Estoy con DHH en este caso. Pero RSpec, uso e incluso abuso :)

1

No estoy seguro de si está bien recomendar un libro aquí, pero the RSpec book proporciona un buen ejemplo práctico de cómo Cucumber y RSpec se pueden intercalar para conducir el desarrollo de un pequeño juego de línea de comandos en Ruby.

En pocas palabras: escribir sus características pepino que adoptan el punto de vista de su usuario final, y las especificaciones de su RSpec utilizando su propio punto de vista como desarrollador es un buen equilibrio entre la velocidad de ejecución del banco de pruebas, granularidad de las pruebas (qué tan precisos son los mensajes de error cuando fallan las pruebas) y cobertura de la documentación (las características de Cucumber se pueden ver como una documentación siempre actualizada - the very own RSpec documentation is a great example of that).

Cuestiones relacionadas