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".