Testes de aceitação com Steak e Capybara

Post on 14-Jan-2015

1.462 views 0 download

description

Lab Zigotto em 17 de Dezembro de 2010

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 => 'user@user.com'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