Your SlideShare is downloading. ×

BDD & Cucumber

2,627
views

Published on

Examples of using Scenarios, Features, Scenarios Outline, Backgrounds and Multiline Step Arguments with Cucumber

Examples of using Scenarios, Features, Scenarios Outline, Backgrounds and Multiline Step Arguments with Cucumber


0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,627
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
58
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1.
      Anderson Leite
  • 2.
      email
      a [email_address]
      t w i tter @an d erson_leite
      blog
      w ww.an d ersonleite.com.br
  • 3.
      CLIENTES
  • 4.
      DESENVOLVEDORES
  • 5.
      TESTERS
  • 6.
      #PUTA FALTA DE SACANAGEM
      A maior parte dos softwares que escrevemos nunca será usado.
  • 7.
      BDD
      CUCUMBER
      COBERTURA
  • 8.
      BDD
      CUCUMBER
      COBERTURA
  • 9.
      BDD
      CUCUMBER
      COBERTURA
      CLIENTE
      PARA CONTROLAR
      MINHAS MUSICAS
      QUERO UM
      SOFTWARE QUE GERENCIE MINHAS MP3
  • 10.
      BDD
      CUCUMBER
      COBERTURA
      DESENVOLVEDOR
      def create @musica = Musica. new (params[:musica]) if @musica.save flash[:notice] = “Perfect!” redirect_to @musica else render :action => 'new' end end
  • 11.
      BDD
      CUCUMBER
      COBERTURA
      TESTER
      HOJE EU
      ARREBENTO
      ESSE SOFTWARE ....
  • 12.
      LINGUAGEM COMUM
      BDD
      CUCUMBER
      COBERTURA
  • 13.
      BDD
      +
      BDD
      CUCUMBER
      COBERTURA
  • 14.
      BDD
      BDD
      CUCUMBER
      COBERTURA
      Behaviour-driven development é sobre implementar
      uma aplicação descrevendo seu comportamento da perspectiva dos seus stakeholders .
  • 15.
      BDD
      BDD
      CUCUMBER
      COBERTURA
  • 16.
      BDD
      BDD
      CUCUMBER
      COBERTURA
      Faça o suficiente
  • 17.
      BDD
      BDD
      CUCUMBER
      COBERTURA
      Faça o suficiente
      Entregue valor real
  • 18.
      BDD
      BDD
      CUCUMBER
      COBERTURA
      Faça o suficiente Entregue valor real
      Tudo é comportamento
  • 19.
      BDD
      CUCUMBER
      COBERTURA
  • 20.
      BDD
      CUCUMBER
      COBERTURA
  • 21.  
  • 22.
      CUKES.INFO
      BDD
      CUCUMBER
      COBERTURA
  • 23.
      CUCUMBER
      gem install cucumber
      BDD
      CUCUMBER
      COBERTURA
      gem install cucumber-rails gem install database_cleaner gem install capybara gem install rspec
  • 24.
      CUCUMBER
      PROJECT_ROOT/ | -- FEATURES | -- musicas.feature
      BDD
      CUCUMBER
      COBERTURA
  • 25.
      CUCUMBER
      PROJECT_ROOT/ | -- FEATURES | -- musicas.feature -- SUPPORT | env.rb
      BDD
      CUCUMBER
      COBERTURA
  • 26.
      CUCUMBER
      PROJECT_ROOT/ | -- FEATURES | -- musicas.feature -- SUPPORT | env.rb -- STEP_DEFINITIONS | musicas_steps.rb
      BDD
      CUCUMBER
      COBERTURA
  • 27.
      BDD
      CUCUMBER
      COBERTURA
      given when then and but
      Dado QuandoEntão E Mas
  • 28.
      STEP
      BDD
      CUCUMBER
      COBERTURA
      DEFINITION
      Dado uma situação
      Dado /^uma situação$/ do visit "/" end end
  • 29.
      BDD
      CUCUMBER
      COBERTURA
      feature background scenario scenario_outlineexamples
      FuncionalidadeContextoCenário Esquema do Cenário Exemplos
  • 30.
      FUNCIONALIDADE
  • 31.
      BDD
      CUCUMBER
      COBERTURA
      Cenario: [titulo]
      Dado [contexto] E [mais contextos] Quando faço [alguma ação] E [outra ação] Então eu deveria ver [resultado] Mas não deveria ver [outro resultado]
  • 32.
      BDD
      CUCUMBER
      COBERTURA
      Dado que estou na pagina inicial
  • 33.
      BDD
      CUCUMBER
      COBERTURA
      Quando adiciono minha nova musica
  • 34.
      BDD
      CUCUMBER
      COBERTURA
      Entao vejo uma mensagem de sucesso
  • 35.
      BDD
      CUCUMBER
      COBERTURA
      Funcionalidade: Para treinar todas cancoes Como um admirador das boas letras Quero um controle de músicas Cenario: Inserir nova musica
      Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso
  • 36.
      BDD
      CUCUMBER
      COBERTURA
      Funcionalidade: Para treinar todas cancoes Como um admirador das boas letras Quero um controle de músicas Cenario: Inserir nova musica
      Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso
  • 37.
      BDD
      CUCUMBER
      COBERTURA
  • 38.
      Dado /^ que estou na pagina inicial $/ do visit "/" end end end
      BDD
      CUCUMBER
      COBERTURA
  • 39.
      Quando /^ adiciono minha nova musica $/ do click_link "New Musica" fill_in "musica[nome]", :with => "Vou Cantar" fill_in "musica[letra]", :with => "Cantando..." click_button "Submit" end
      BDD
      CUCUMBER
      COBERTURA
  • 40.
      BDD
      CUCUMBER
      COBERTURA
      Entao /^ vejo ela cadastrada na lista $/ do page.should have_content "Successfully created musica." end
  • 41.
      BDD
      CUCUMBER
      COBERTURA
      Funcionalidade: Para treinar todas cancoes Como um admirador das boas letras Quero um controle de músicas Cenario: Inserir nova musica
      Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso
  • 42.
      POTHIX
      LEGAL ....
      MAS EU TERIA USADO O
      VIM :)
      BDD
      CUCUMBER
      COBERTURA
  • 43.
      BACKGROUND / CONTEXTO
  • 44.
      BDD
      CUCUMBER
      COBERTURA
      Dado que estou na pagina inicial
  • 45.
      BDD
      CUCUMBER
      COBERTURA
      Quando edito uma musica
  • 46.
      BDD
      CUCUMBER
      COBERTURA
      Entao vejo a mensagem de confirmacao
  • 47.
      BDD
      CUCUMBER
      COBERTURA
      Contexto:
      Dado que estou na pagina inicial Cenario: Inserir nova musica Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso
      Cenario: Editar Musica Quando edito uma musica Entao vejo a mensagem de confirmacao
      Quando edito uma musica Entao vejo a mensagem de confirmacao Quando edito uma musica Entao vejo a mensagem de confirmacao
  • 48.
      Testes são independentes
      BDD
      CUCUMBER
      COBERTURA
  • 49.
      BDD
      CUCUMBER
      COBERTURA
      Contexto:
      Dado que estou na pagina inicial
      Cenario: Editar Musica
      E que a seguinte musica existe: | nome | letra | | vou cantar | cantando |
      Quando edito uma musica Entao vejo a mensagem de confirmacao
      MULTILINE TABLES
  • 50.
      BDD
      CUCUMBER
      COBERTURA
      GREEN LIKE A CUKE!
  • 51.
      ESQUEMA DE CENARIO
  • 52.
      BDD
      CUCUMBER
      COBERTURA
      Quando adiciono a musica &quot;<nome>&quot;
  • 53.
      BDD
      CUCUMBER
      COBERTURA
      Quando adiciono a musica &quot;<nome>&quot;
  • 54.
      BDD
      CUCUMBER
      COBERTURA
      Contexto: Dado que estou na pagina inicial
      Esquema do Cenario: Validacao
      Quando adiciono a musica &quot; <nome> &quot; Entao vejo a mensagem &quot; <mensagem> &quot; Exemplos: | nome | mensagem | | restart | Successfully created musica.| | | Nome can't be blank | | nome | mensagem | | restart | Successfully created musica.| | | Nome can't be blank | | nome | mensagem | | restart | Successfully created musica.| | | Nome can't be blank | | nome | mensagem | | restart | Successfully created musica.| | | Nome can't be blank |
  • 55.
      BDD
      CUCUMBER
      COBERTURA
      GREEN LIKE A CUKE!
  • 56.
      BDD
      CUCUMBER
      COBERTURA
      Quando edito uma musica
  • 57.
      BDD
      CUCUMBER
      COBERTURA
      Contexto:
      Dado que estou na pagina inicial Cenario: Letra da Musica E eu seleciono uma letra Entao verifico na tela &quot;&quot;&quot; Sei que os dias passaram E eu vejo que o nosso pra sempre acabou E nada do que nos foi contado, Os desejos e sonhos que a vida mudou &quot;&quot;&quot; Os desejos e sonhos que a vida mudou &quot;&quot;&quot;
  • 58.
      BDD
      CUCUMBER
      COBERTURA
      MULTILINE STRINGS
  • 59.
      BDD
      CUCUMBER
      COBERTURA
      CUCUMBER OPTIONS - TAGS / FORMAT
      @inserir Cenario: Inserir nova musica
      Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso
      cucumber --tags @inserir --format pretty
  • 60.
      BDD
      CUCUMBER
      COBERTURA
      REFACTOR and REPEAT
  • 61.
      BDD
      CUCUMBER
      COBERTURA
  • 62.
      BDD
      CUCUMBER
      COBERTURA
      RELEVANCE-RCOV
      gem install relevance-rcov
      Cucumber::Rake::Task.new(:rcov) do |t| t.rcov = true t.rcov_opts = %w{--rails --exclude osx/objc,gems/,spec/} t.rcov_opts << %[-o &quot;features_rcov&quot;] end
      end
  • 63.
      RELEVANCE-RCOV
      BDD
      CUCUMBER
      COBERTURA
  • 64.
      RELEVANCE-RCOV
      BDD
      CUCUMBER
      COBERTURA
  • 65.
      RELEVANCE-RCOV
      BDD
      CUCUMBER
      COBERTURA
  • 66.
      CONCLUINDO...
      BDD
      CUCUMBER
      COBERTURA
  • 67.
      http://github.com/andersonleite/kidsongs
      http://www.slideshare.net/andersonleite
  • 68.
      SÉRIO! =D
      Se você não usar testes na sua próxima aplicação...
      #VOU XINGAR MUITO NO TWITTER
  • 69.
      Anderson Leite
      @anderson_leite
      [email_address]
      www.andersonleite.com.br