Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
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