View
3.218
Download
0
Category
Preview:
Citation preview
Anderson Leite
anderson.leite@caelum.com.br
twitter@anderson_leite
blog
www.andersonleite.com.br
CLIENTES
DESENVOLVEDORES
TESTERS
#PUTAFALTADESACANAGEM
A maior parte dos softwares que escrevemos nunca ser usado.
BDD
CUCUMBER
COBERTURA
BDD
CUCUMBER
COBERTURA
BDD
CUCUMBER
COBERTURA
CLIENTE
PARA CONTROLAR
MINHAS MUSICAS
QUERO UM
SOFTWARE QUEGERENCIE MINHAS MP3
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
BDD
CUCUMBER
COBERTURA
TESTER
HOJE EU
ARREBENTO
ESSE SOFTWARE ....
LINGUAGEM COMUM
BDD
CUCUMBER
COBERTURA
BDD
+
BDD
CUCUMBER
COBERTURA
BDD
BDD
CUCUMBER
COBERTURA
Behaviour-driven development sobre implementar
uma aplicao descrevendo seu comportamento da perspectiva dos seus stakeholders.
BDD
BDD
CUCUMBER
COBERTURA
BDD
BDD
CUCUMBER
COBERTURA
Faa o suficiente
BDD
BDD
CUCUMBER
COBERTURA
Faa o suficiente
Entregue valor real
BDD
BDD
CUCUMBER
COBERTURA
Faa o suficiente
Entregue valor real
Tudo comportamento
BDD
CUCUMBER
COBERTURA
BDD
CUCUMBER
COBERTURA
CUKES.INFO
BDD
CUCUMBER
COBERTURA
CUCUMBER
gem install cucumber
BDD
CUCUMBER
COBERTURA
gem install cucumber-railsgem install database_cleanergem install capybaragem install rspec
CUCUMBER
PROJECT_ROOT/| -- FEATURES | -- musicas.feature
BDD
CUCUMBER
COBERTURA
CUCUMBER
PROJECT_ROOT/| -- FEATURES | -- musicas.feature -- SUPPORT | env.rb
BDD
CUCUMBER
COBERTURA
CUCUMBER
PROJECT_ROOT/| -- FEATURES | -- musicas.feature -- SUPPORT | env.rb -- STEP_DEFINITIONS | musicas_steps.rb
BDD
CUCUMBER
COBERTURA
BDD
CUCUMBER
COBERTURA
given whenthen
and but
Dado QuandoEnto E Mas
STEP
BDD
CUCUMBER
COBERTURA
DEFINITION
Dado uma situao
Dado /^uma situao$/ do visit "/"endend
BDD
CUCUMBER
COBERTURA
feature background scenario scenario_outlineexamples
FuncionalidadeContextoCenrio Esquema do CenrioExemplos
FUNCIONALIDADE
BDD
CUCUMBER
COBERTURA
Cenario: [titulo]
Dado [contexto]E [mais contextos]Quando fao [alguma ao]E [outra ao]Ento eu deveria ver [resultado]Mas no deveria ver [outro resultado]
BDD
CUCUMBER
COBERTURA
Dado que estou na pagina inicial
BDD
CUCUMBER
COBERTURA
Quando adiciono minha nova musica
BDD
CUCUMBER
COBERTURA
Entao vejo uma mensagem de sucesso
BDD
CUCUMBER
COBERTURA
Funcionalidade: Para treinar todas cancoesComo um admirador das boas letrasQuero um controle de msicasCenario: Inserir nova musica
Dado que estou na pagina inicialQuando adiciono minha nova musicaEntao vejo uma mensagem de sucesso Dado que estou na pagina inicialQuando adiciono minha nova musicaEntao vejo uma mensagem de sucesso Dado que estou na pagina inicialQuando adiciono minha nova musicaEntao vejo uma mensagem de sucesso
BDD
CUCUMBER
COBERTURA
Funcionalidade: Para treinar todas cancoesComo um admirador das boas letrasQuero um controle de msicasCenario: Inserir nova musica
Dado que estou na pagina inicialQuando adiciono minha nova musicaEntao vejo uma mensagem de sucesso Dado que estou na pagina inicialQuando adiciono minha nova musicaEntao vejo uma mensagem de sucesso Dado que estou na pagina inicialQuando adiciono minha nova musicaEntao vejo uma mensagem de sucesso
BDD
CUCUMBER
COBERTURA
Dado /^que estou na pagina inicial$/ do visit "/"endendend
BDD
CUCUMBER
COBERTURA
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
BDD
CUCUMBER
COBERTURA
Entao /^vejo ela cadastrada na lista$/ do page.should have_content "Successfully created musica."end
BDD
CUCUMBER
COBERTURA
Funcionalidade: Para treinar todas cancoesComo um admirador das boas letrasQuero um controle de msicasCenario: Inserir nova musica
Dado que estou na pagina inicialQuando adiciono minha nova musicaEntao vejo uma mensagem de sucesso Dado que estou na pagina inicialQuando adiciono minha nova musicaEntao vejo uma mensagem de sucesso Dado que estou na pagina inicialQuando adiciono minha nova musicaEntao vejo uma mensagem de sucesso
POTHIX
LEGAL ....
MAS EU TERIA
USADO O
VIM :)
BDD
CUCUMBER
COBERTURA
BACKGROUND / CONTEXTO
BDD
CUCUMBER
COBERTURA
Dado que estou na pagina inicial
BDD
CUCUMBER
COBERTURA
Quando edito uma musica
BDD
CUCUMBER
COBERTURA
Entao vejo a mensagem de confirmacao
BDD
CUCUMBER
COBERTURA
Contexto:
Dado que estou na pagina inicialCenario: Inserir nova musica Quando adiciono minha nova musicaEntao vejo uma mensagem de sucesso
Cenario: Editar MusicaQuando edito uma musicaEntao vejo a mensagem de confirmacao
Quando edito uma musicaEntao vejo a mensagem de confirmacaoQuando edito uma musicaEntao vejo a mensagem de confirmacao
Testes so independentes
BDD
CUCUMBER
COBERTURA
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 musicaEntao vejo a mensagem de confirmacao
MULTILINE TABLES
BDD
CUCUMBER
COBERTURA
GREEN LIKE A CUKE!
ESQUEMA DE CENARIO
BDD
CUCUMBER
COBERTURA
Quando adiciono a musica ""
BDD
CUCUMBER
COBERTURA
Quando adiciono a musica ""
BDD
CUCUMBER
COBERTURA
Contexto:Dado que estou na pagina inicial
Esquema do Cenario: Validacao
Quando adiciono a musica ""Entao vejo a mensagem ""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 |
BDD
CUCUMBER
COBERTURA
GREEN LIKE A CUKE!
BDD
CUCUMBER
COBERTURA
Quando edito uma musica
BDD
CUCUMBER
COBERTURA
Contexto:
Dado que estou na pagina inicialCenario: Letra da MusicaE eu seleciono uma letraEntao verifico na tela """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""" Os desejos e sonhos que a vida mudou"""
BDD
CUCUMBER
COBERTURA
MULTILINE STRINGS
BDD
CUCUMBER
COBERTURA
CUCUMBER OPTIONS - TAGS / FORMAT
@inserirCenario: Inserir nova musica
Dado que estou na pagina inicialQuando adiciono minha nova musicaEntao vejo uma mensagem de sucesso Dado que estou na pagina inicialQuando adiciono minha nova musicaEntao vejo uma mensagem de sucesso Dado que estou na pagina inicialQuando adiciono minha nova musicaEntao vejo uma mensagem de sucesso
cucumber --tags @inserir --format pretty
BDD
CUCUMBER
COBERTURA
REFACTOR and REPEAT
BDD
CUCUMBER
COBERTURA
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
Recommended