2011-03-21 20 views
9

Me gustaría escribir algunas pruebas automáticas para mi aplicación Rails 3.¿Cómo empezar a probar una aplicación Rails?

Me pregunto cómo empezar con eso.

He oído hablar de Selenium/RSpec/Cucumber, y creo que hay muchas más opciones.

¿Cuáles son las ventajas/desventajas de estos marcos de prueba? ¿Cuál de ellos tiene la mejor documentación? ¿Cuál es el más popular en el mundo de Ruby? Y en la industria en absoluto?

Tengo el conocimiento general de cómo escribir pruebas. Solo quiero aprender los marcos de prueba apropiados para probar las aplicaciones de Rails.

Ayúdenme a decidir con qué marco de prueba comenzar.

+3

Todas muy buenas preguntas. OMI, hay tal falta de cohesión/entendimiento sobre tantos aspectos de Rails, especialmente con respecto a las pruebas. – Zabba

+0

Algunos buenos artículos sobre [metabates.com] (http://www.metabates.com/). – Zabba

Respuesta

2

Existen muchas herramientas para probar rieles y otras aplicaciones de diferentes aspectos. Pero si es la primera vez que prueba , le recomiendo que empiece con la plataforma de prueba de aprendizaje de los propios raíles antes de comenzar a usar otras herramientas.

Aprendizaje y masterización posterior, un marco de prueba hace que sea más fácil en el futuro comprender las ventajas y desventajas con otro marco y hacer que funcionen al unísono.

Se podría empezar con la prueba de las siguientes cosas:

  • unidad de prueba sus modelos
  • pruebas funcionales para sus controladores
  • Descubrimiento de la Accesorios y cómo cargar los datos de prueba

He visto muchos intentos fallidos de prueba, pero nunca los vi fallar porque eligen la herramienta/marco equivocado. Fallan porque no saben cómo dominar las herramientas que usan, y aprenden lo suficiente sobre los conceptos básicos sobre las pruebas.

Más información sobre las pruebas de Rails aquí.
http://guides.rubyonrails.org/testing.html

Manual de pruebas exploratorias
Por mucho que me encanta de prueba automatizada que es, en mi humilde opinión, no es un sustituto de las pruebas manuales. La razón principal es que un sistema automatizado solo puede hacer lo que se le dice y solo verificar lo que se le ha informado para ver si pasa o no. Un humano puede usar su inteligencia para encontrar fallas y plantear preguntas que aparecen mientras prueba otra cosa.
Leer más sobre la mezcla automatizada y prueba manual en otra de mis respuestas aquí:
What test methods do you use for developing websites?

1

La manera más fácil de comenzar es usando TestUnit. Cuando genera un modelo, vista, controlador que usa andamios, generará automáticamente una carpeta de pruebas para usted que contiene un archivo de configuración de entorno de prueba y pruebas, o puede agregar pruebas a modelos existentes con un generador de rieles.

Es entonces una cuestión de leer la documentación en TestUnit, de la cual hay una cantidad justa.

Para un próximo paso, mi preferencia personal es usar RSpec sobre Pepino: he encontrado que Cucumber es difícil de mantener, y si bien es maravilloso tener pruebas que pueda leer su jefe, he descubierto que la mayoría de los jefes realmente no quiero leer ni contribuir a las pruebas, y hace que el desarrollo consuma mucho tiempo y es muy "deshilvanado": una gran cantidad de pequeños fragmentos de texto dispersos en varios archivos.

Si quiere saltar directamente y comenzar a usar RSpec para Rails, entonces le recomendaría Rspec-Rails, que incluye muchos ayudantes para afirmar el correcto comportamiento de su aplicación.

Podría seguir, pero usted ha preguntado "¿dónde empiezo? - hay dos buenos lugares.

+0

Gracias por su opinión. No dijiste nada sobre el Selenio. Supongo que RSpec y Selenium estaban destinados a diferentes tipos de pruebas. Está bien ? –

+0

Misha: RSpec se puede usar CON Selenium si está probando su aplicación como se representa en el navegador (Selenium es un controlador de navegador). – carols10cents

+0

Lo que usa para pretender ser un navegador depende de usted; funciona bien con RSpec. Uso Webrat porque me resulta más fácil de configurar. – stef

2

Selenium es un marco para automatizar las pruebas de la interfaz de usuario. Selenium script inicia una ventana del navegador, va a una página web y manipula los elementos de la página.

RSpec y pepino son herramientas para lo que se llama "desarrollo impulsado conducta (TDC)". BDD es un proceso de desarrollo en el que tiene una descripción de una función separada y una secuencia de comandos (puede ser una secuencia de comandos de Selenium) que verifica esta función. RSpec y Cucumber básicamente conectan estos dos, de modo que cuando ejecuta un script de prueba, ve la lista de características escritas en lenguaje sencillo y su estado de prueba.

Las secuencias de comandos de Selenium se pueden escribir en number of languages, mientras que las secuencias de comandos de Pepino utilizan Ruby. La documentación está bien para todos ellos, aunque se requiere cierto conocimiento del lenguaje de programación.

enlaces de inicio:

1

Hay un montón de marcos que le ayudan a prueba su código de rubí/rieles ... lo mejor es que la naturaleza dinámica de Rubí le da una gran flexibilidad.

Me gusta usar RSpec para probar las partes internas de mi código, y Cucumber para probar el comportamiento de la aplicación. Por lo tanto, en general, RSpec probará modelos y métodos, y Cucumber prueba la interacción del usuario a través del navegador.

Recomiendo este ebook de programadores pragmáticos en BDD using RSpec on Cucumber.

+0

Nota: Yo personalmente no recomiendo el selenio. Me gustaría ir con Cucumber usando Capybara para probar la interacción navegador/usuario. –

+0

Jesse: Capybara puede usar Selenium como su controlador de navegador si está probando javascript; no son mutuamente excluyentes. – carols10cents

+0

@carolclarinet buen punto –

2

Yo no diría que hay algún mejor conjunto de herramientas de prueba por ahí; y la comunidad definitivamente no ha decidido ser estándar de ninguna manera.

Recomiendo encarecidamente The RSpec Book de los programadores pragmáticos: aproximadamente la mitad del libro está en pruebas con Rails con Cucumber, RSpec y simuladores de navegadores como Selenium. Es una descripción completa de las diferentes situaciones en las que se encontrará con Rails y qué herramientas le gustaría usar en cada situación.

Cuestiones relacionadas