6

Estoy tratando de configurar un conjunto de pruebas de integración para una aplicación de Rails 3 que ya está construida. La aplicación está construida con Rails 3 y Ruby 1.9.2. He visto recomendaciones para Capybara, Cucumber y RSpec 2, pero no estoy seguro de cuáles son las ventajas de cada una.Pruebas de integración de rieles

También he notado que parecen estar estrechamente vinculados. La publicación que he visto siempre parece hablar sobre el uso de Capybara con Cucumber o el uso de Rspec con Cucumber.

¿Cuáles son las ventajas/desventajas de cada uno de ellos? ¿Hay ciertas combinaciones que funcionan mejor juntas?

Respuesta

13

Todas estas herramientas de prueba se encuentran en diferentes partes del entorno de prueba.

Si desea configurar las pruebas de integración, debe usar Pepino porque no tiene una alternativa real. Cucumber está diseñado para un fácil desarrollo basado en el comportamiento, pero incluso si no lo haces, es perfecto para las pruebas de integración.

Capybara mission statement es "webrat alternativa que tiene como objetivo admitir todos los simuladores de navegador". Entonces, para simular la parte del navegador (solicitud HTTP, manipulación del DOM, etc.) tiene dos alternativas: Webrat o Capybara. Pepino se integra bien con los dos. De hecho, detecta cuál has instalado en tu sistema y lo usa de manera predeterminada.

En el otro lado está Rspec. Rspec no es una herramienta para pruebas de integración, sino para pruebas unitarias (con un enfoque BDD). En http://www.pragprog.com/titles/achbd/the-rspec-book se explica muy claramente. El pepino está en un círculo externo de comportamiento de aplicación y rspec está en un círculo interno de comportamiento de clase. La alternativa a rspec es clásica Prueba :: Unidad clases.

Para más información ver:

+1

Steak (https://github.com/cavalle/steak) es otra alternativa a Cucumber. – raidfive

+0

excelente respuesta, pero puedo sugerir agregar enlaces para Cucumber, Capybara, Webrat, RSpec y Unit :: Test. Creo que obtendrás más votos. – jwfearn

+0

@jwfearn, gracias y hecho! – David

0

En resumen, usa los tres.

Uso RSpec ...

  • ... para los métodos de prueba en sus modelos, controladores y ayudantes de forma aislada.
  • También conocido como Prueba unitaria.

Uso pepino ...

  • ... para probar características de alto nivel de su aplicación.
  • También conocido como prueba de integración. Verifica que todas las piezas funcionen juntas.
  • Bueno para probar desde la perspectiva de un usuario.

Uso Carpincho con pepino ...

  • ... para navegar por su aplicación como lo haría un usuario a través del navegador.
  • ... para probar sus vistas contienen el contenido que un usuario esperaría ver.
Cuestiones relacionadas