Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Acceptance testing with Steak and Capybara
1. El stack de testing de
aceptación definitivo de moda
el primer trimestre de 2010
RSpec · Steak · Capybara · RackTest · Culerity · ...
madrid-rb Sergio Gil
@madridrb @porras
32. Porque el texto plano no aporta nada si quienes
escribimos y leemos somos desarrolladores
(sólo una capa más a cambio de nada)
33. Porque el único producto del desarrollo del
software susceptible de validación es el software
(Manifiesto Ágil, minuto 1)
34. Porque el mantenimiento, reutilización y refactorización
de features y steps acaba siendo muy complejo y trabajoso
(que era lo que queríamos evitar)
38. feature "Main page" do
background do
create_user :login => "wadus"
end
scenario "should show existing books" do
create_book :title => "The Pragmatic Programmer"
login_as "wadus"
visit "/"
page.should have_css(".book", :text => "The Pragmatic Programmer")
end
end
39. feature "Main page" do
background do
create_user :login => "wadus"
end
scenario "should show existing books" do
create_book :title => "The Pragmatic Programmer"
login_as "wadus"
visit "/"
page.should have_css(".book", :text => "The Pragmatic Programmer")
end
end
40. feature "Main page" do
background do
create_user :login => "wadus"
end
scenario "should show existing books" do
create_book :title => "The Pragmatic Programmer"
login_as "wadus"
visit "/"
page.should have_css(".book", :text => "The Pragmatic Programmer")
end
end
41. feature "Main page" do
background do
create_user :login => "wadus"
end
scenario "should show existing books" do
create_book :title => "The Pragmatic Programmer"
login_as "wadus"
visit "/"
page.should have_css(".book", :text => "The Pragmatic Programmer")
end
end
42. feature "Main page" do
background do
create_user :login => "wadus"
end
scenario "should show existing books" do
create_book :title => "The Pragmatic Programmer"
login_as "wadus"
visit "/"
page.should have_css(".book", :text => "The Pragmatic Programmer")
end
end
43. feature "Main page" do
background do
create_user :login => "wadus"
end
scenario "should show existing books" do
create_book :title => "The Pragmatic Programmer"
login_as "wadus"
visit "/"
page.should have_css(".book", :text => "The Pragmatic Programmer")
end
end
44. feature "Main page" do
background do
create_user :login => "wadus"
end
scenario "should show existing books" do
create_book :title => "The Pragmatic Programmer"
login_as "wadus"
visit "/"
page.should have_css(".book", :text => "The Pragmatic Programmer")
end
end
45. RSpec
“The original Behaviour Driven
Development framework for Ruby”
46. describe RSpec do
it "should be cool" do
RSpec.should be_cool
end
end
47. Capybara
“DSL for interacting with a web application”
51. Ideal para testing de aceptación
Alto nivel
No se habla de modelos o métodos
52. Ideal para testing de aceptación
Alto nivel
No se habla de modelos o métodos
Ni tampoco de acciones o peticiones
53. Ideal para testing de aceptación
Alto nivel
No se habla de modelos o métodos
Ni tampoco de acciones o peticiones
Sino de páginas, enlaces y formularios
82. Delorean
it "should show latest created user" do
time_travel_to(3.minutes.ago) { create_user :name => "John" }
time_travel_to(5.minutes.ago) { create_user :name => "Chris" }
get '/'
response.should have_text("John")
response.should_not have_text("Chris")
end