bdd & cucumber

Download BDD & Cucumber

If you can't read please download the document

Upload: andersonleite

Post on 16-Apr-2017

3.218 views

Category:

Self Improvement


0 download

TRANSCRIPT

Anderson Leite

email

[email protected]

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