rails rack_test feature example testing rubygems cucumber capybara bdd

testing - rack_test - ruby capybara github



Pepino vs Capibara (3)

¿Alguien puede explicar la diferencia entre estas dos plataformas? ¿Ambos son parte de BDD pero por qué debería usar uno u otro, o ambos juntos? Gracias por las respuestas


Cucumber es una herramienta BDD de uso general. No sabe nada sobre aplicaciones web. Así que las definiciones de pasos de Cucumber llaman a Capybara para probar aplicaciones web.


cucumber es una herramienta de BDD que expresa escenarios de prueba en un lenguaje legible por negocios y específico de dominio.

capybara es una herramienta de prueba automatizada (de uso frecuente) para aplicaciones ROR.

En la página de capybara github, hay un ejemplo sobre el uso de capibara con pepino .


El carpincho es una herramienta que interactúa con un sitio web de la forma en que lo haría un ser humano (como visitar una url, hacer clic en un enlace, escribir texto en un formulario y enviarlo). Se usa para emular el flujo de un usuario a través de un sitio web. Con Capybara puedes escribir algo como esto:

describe "the signup process", :type => :feature do before :each do User.make(:email => ''[email protected]'', :password => ''caplin'') end it "signs me in" do visit ''/sessions/new'' within("#session") do fill_in ''Login'', :with => ''[email protected]'' fill_in ''Password'', :with => ''password'' end click_link ''Sign in'' page.should have_content ''Success'' end end

Pepino es una herramienta para escribir pruebas legibles por humanos que están mapeadas en código. Con él, puede reescribir el ejemplo anterior de esta manera:

Scenario: Signup process Given a user exists with email "[email protected]" and password "caplin" When I try to login with "[email protected]" and "caplin" Then I should be logged in successfully

La interpretación de texto casi sin formato es útil para pasar a los no desarrolladores pero también necesita algún código mapeado para que realmente funcione (las definiciones de los pasos).

Usualmente usarás Capybara si estás probando un sitio web y usas Cucumber si necesitas compartir esas pruebas con no desarrolladores. Estas dos condiciones son independientes, por lo que puede usar una sin la otra o ambas o ninguna.

PD: en el fragmento de código también hay algunos RSpec. Esto es necesario porque el Pepino o el Carpincho por sí mismos no pueden probar algo. Confían en RSpec, Test :: Unit o minitest para hacer el trabajo real de "Pasar o Fallar".