Testes de aceitação com Steak e Capybara
-
Upload
zigotto-tecnologia -
Category
Technology
-
view
1.462 -
download
0
description
Transcript of Testes de aceitação com Steak e Capybara
Testes de aceitação comSteak e Capybara
por Jésus Lopes@jtadeulopes
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
Sucesso!
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
Testes de aceitação
sexta-feira, 17 de dezembro de 2010
Automatizar os testes deaceitação!
sexta-feira, 17 de dezembro de 2010
O que é teste deaceitação?
sexta-feira, 17 de dezembro de 2010
Testes do cliente!
sexta-feira, 17 de dezembro de 2010
Por que?
sexta-feira, 17 de dezembro de 2010
Por que?
Mais valioso de todos
sexta-feira, 17 de dezembro de 2010
Por que?
Mais valioso de todos
Começa com a interface
sexta-feira, 17 de dezembro de 2010
Por que?
Mais valioso de todos
Começa com a interface
Ajuda a pensar na funcionalidade e aplicar somente o necessário
sexta-feira, 17 de dezembro de 2010
Mas eu faço isso!
sexta-feira, 17 de dezembro de 2010
Mas eu faço isso!
sexta-feira, 17 de dezembro de 2010
Mas eu faço isso!
sexta-feira, 17 de dezembro de 2010
Errado!
sexta-feira, 17 de dezembro de 2010
Então, como automatizar este tipo de teste?
sexta-feira, 17 de dezembro de 2010
Steak“Minimalist acceptance testing on top of RSpec”
sexta-feira, 17 de dezembro de 2010
Exemplo:
1º Descrever o comportamento emRuby puro
sexta-feira, 17 de dezembro de 2010
1 feature "Produtos", %q{ 2 A fim de ter um site com produtos 3 Como administrador 4 Eu quero gerenciar meus produtos 5 } do 6 7 scenario "Visualizando produtos na home" do 8 9 Product.create!(:name => 'Sapato')10 Product.create!(:name => 'Mochila')11 12 visit '/'13 14 page.should have_content('Sapato')15 page.should have_content('Mochila')16 17 end18 19 end
sexta-feira, 17 de dezembro de 2010
Pronto!
sexta-feira, 17 de dezembro de 2010
Pronto!Basta seguir com o desenvolvimento...
sexta-feira, 17 de dezembro de 2010
Pronto!Basta seguir com o desenvolvimento...
2º Rodar os testes e ver falhando
sexta-feira, 17 de dezembro de 2010
Pronto!Basta seguir com o desenvolvimento...
2º Rodar os testes e ver falhando
3º Escrever o código necessário para o teste passar
sexta-feira, 17 de dezembro de 2010
Pronto!Basta seguir com o desenvolvimento...
2º Rodar os testes e ver falhando
3º Escrever o código necessário para o teste passar
4º Rodar os testes novamente...
sexta-feira, 17 de dezembro de 2010
Capybara“DSL for interacting with a web application”
sexta-feira, 17 de dezembro de 2010
visit '/'
sexta-feira, 17 de dezembro de 2010
click_link 'Products'
sexta-feira, 17 de dezembro de 2010
click_button 'Save'
sexta-feira, 17 de dezembro de 2010
Formulários
sexta-feira, 17 de dezembro de 2010
fill_in 'First Name', :with => 'Jésus'
Formulários
sexta-feira, 17 de dezembro de 2010
fill_in 'First Name', :with => 'Jésus'
choose 'A Radio Button'
Formulários
sexta-feira, 17 de dezembro de 2010
fill_in 'First Name', :with => 'Jésus'
choose 'A Radio Button'
check 'A Checkbox'
Formulários
sexta-feira, 17 de dezembro de 2010
fill_in 'First Name', :with => 'Jésus'
choose 'A Radio Button'
check 'A Checkbox'
uncheck 'A Checkbox'
Formulários
sexta-feira, 17 de dezembro de 2010
fill_in 'First Name', :with => 'Jésus'
choose 'A Radio Button'
check 'A Checkbox'
uncheck 'A Checkbox'
attach_file 'Image', '/path/to/image.jpg'
Formulários
sexta-feira, 17 de dezembro de 2010
select 'Option', :from => 'Select Box'
fill_in 'First Name', :with => 'Jésus'
choose 'A Radio Button'
check 'A Checkbox'
uncheck 'A Checkbox'
attach_file 'Image', '/path/to/image.jpg'
Formulários
sexta-feira, 17 de dezembro de 2010
Mais exemplos!
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
1 feature "Lorem ipsum" do 2 3 scenario "New lorem" do 4 5 visit 'http://www.domain.com' 6 7 click_link 'Light Button' 8 9 fill_in 'Input', :with => 'dolore'10 fill_in 'Text-Field', :with => 'Lorem ipsum dolor...'11 click_button 'Dark Button'12 13 page.should have_content 'dolor sit amet'14 end15 16 end
sexta-feira, 17 de dezembro de 2010
Consultas na página
sexta-feira, 17 de dezembro de 2010
page.has_selector?('table tr')
Consultas na página
sexta-feira, 17 de dezembro de 2010
page.has_selector?('table tr')
page.has_selector?(:xpath, '//table/tr')
Consultas na página
sexta-feira, 17 de dezembro de 2010
page.has_selector?('table tr')
page.has_selector?(:xpath, '//table/tr')
page.has_css?('table tr.foo')
Consultas na página
sexta-feira, 17 de dezembro de 2010
Encontrar elementos
sexta-feira, 17 de dezembro de 2010
find_field('First Name').value
Encontrar elementos
sexta-feira, 17 de dezembro de 2010
find_field('First Name').value
find_link('Hello').visible?
Encontrar elementos
sexta-feira, 17 de dezembro de 2010
find_field('First Name').value
find_link('Hello').visible?
find_button('Send').click
Encontrar elementos
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
sexta-feira, 17 de dezembro de 2010
1 feature "Login" do 2 3 scenario "Login como administrador" do 4 5 within("div.admin") do 6 fill_in 'LOGIN', :with => 'user' 7 fill_in 'SENHA', :with => 'senha123' 8 click_button 'Light Button' 9 end10 11 end12 13 scenario "Login como aluno" do14 15 within("div.student") do16 fill_in 'E-MAIL', :with => '[email protected]'17 fill_in 'SENHA', :with => 'senha123'18 click_button 'Light Button'19 end20 21 end22 23 end
sexta-feira, 17 de dezembro de 2010
Live coding!
sexta-feira, 17 de dezembro de 2010
Obrigado!
sexta-feira, 17 de dezembro de 2010
Fontes
• https://github.com/cavalle/steak
• https://github.com/jnicklas/capybara
• http://jeffkreeftmeijer.com/2010/steak-because-cucumber-is-for-vegetarians
• http://www.slideshare.net/danielvlopes/steak-4939188
• http://www.dtsato.com/blog/2007/09/24/voce-automatiza-seus-testes-de-aceitacao
• http://www.extremeprogramming.org/rules/functionaltests.html
• Storyboard characters - http://www.graffletopia.com/stencils/462
• http://www.eleqtriq.com/2010/08/sqetch-wireframe-toolkit/
sexta-feira, 17 de dezembro de 2010