2011-01-19 13 views
5

Estoy usando capibara y pepino en mi aplicación rails3. Todo está funcionando bien. Sin embargo, no entiendo cómo funcionan las pruebas.capibara de pepino ¿cómo funciona?

Digamos que tengo una prueba de función de pepino estándar. No estoy usando @selenium, etc. Es una prueba simple de vainilla. Ahora cuando ejecuto

bundle exec cucumber 

¿ese servidor rails se inicia en un puerto? Si es así, ¿cuál es el número de puerto? También en el caso de vainilla simple, el carpincho usa prueba en rack. Sin embargo, la prueba en rack no es responsable de ejecutar el servidor. Entonces estoy confundido de cómo funciona todo. Qué papel está jugando el pepino. Qué prueba en rack de trabajo está haciendo y qué está haciendo el capibara.

Si tiene enlaces a artículos, por favor comparta conmigo. Realmente quiero saber cómo están funcionando las cosas juntas.

Respuesta

5

Aunque realmente no conozco los detalles más profundos de cómo funciona esto. Pero hago lo suficiente para proporcionarte una perspectiva.

Pepino es un marco de prueba de aceptación de ruby, le permite escribir aceptación en inglés sencillo. Ahora, en general, se encuentra sobre Webrat o Capybara, que le proporcionan su verdadera potencia, es decir, explorador simulado o prueba de navegador automatizado.

Capybara o Webrat hacen que sea más fácil ejecutar pruebas de aceptación. Cartibara hace que sea muy simple usar varios controladores para ejecutar pruebas de aceptación. Controladores, es decir, selenio, celeridad o prueba en rack. En un caso de vainilla, la prueba en rack se usa para pruebas de navegador simuladas.

Rack-Test en sí mismo es responsable de crear la sesión en la que ejecuta sus pruebas, las definiciones de paso, etc. han sido creadas por capybara. Así que, básicamente, no hay ningún servidor que ejecute su sesión justa (simulacro de sesión para ser precisos) creado por prueba en rack. Capybara ahora proporciona un buscador de métodos y emparejamientos, etc. además de esta sesión creada por el controlador (prueba de rack o de otro tipo) para ayudarte a crear tus propias definiciones de pasos.

Pepino ejecuta los pasos, es decir, los buscadores/matcher etc en ellos, en la sesión y por lo tanto sus pruebas.

+0

Gracias por la respuesta. Mi pregunta es si la solicitud y la respuesta se burlan de la prueba en rack, y cómo cucumber + capybara obtiene acceso a páginas html reales con datos de respuesta que contienen diseños de rieles y vistas. –

+0

en realidad no ... simplemente se burla de una sesión del navegador, básicamente, la cookie, etc., y envía la solicitud usando el estante. Respuesta actualizada –

+0

Miré el código fuente de la prueba en rack. Y ahora tengo una imagen más clara. Muchas gracias. –

Cuestiones relacionadas