BDD com Cucumber
-
Upload
luciano-costa -
Category
Technology
-
view
774 -
download
9
description
Transcript of BDD com Cucumber
Luciano Costa
behaviour = comportamento
behaviour driven development
==
desenvolvimento orientado acomportamento
BDD
descreva como sua aplicação
deve se comportar
BDD
teste primeiro,
codifique depois!
BDD/TDD
codifique somente o necessáriopara passar no teste
BDD/TDD
comportamento
Por que você está aqui?
Estrutura de User Story
Sendo um ...
Eu quero/necessito ...
De modo que ...
Estrutura de User Story
Sendo um ... (quem)
Eu quero/necessito ... (funcionalidade)
De modo que ... (valor de negócio)
Sistema para locadora de DVD’s
brilliant!
exemplo
Funcionalidade: Usuário lista filmes a alugar com prioridadePara aumentar a quantidade de filmes alugadosO usuário cadastradoNecessita informar os filmes que deseja assistir
Funcionalidade: Usuário lista filmes a alugar com prioridadePara aumentar a quantidade de filmes alugadosO usuário cadastradoNecessita informar os filmes que deseja assistir
Funcionalidade: Usuário lista filmes a alugar com prioridadePara aumentar a quantidade de filmes alugadosO usuário cadastradoNecessita informar os filmes que deseja assistir
Ooops!Eu acho que vi um
padrão!
Funcionalidade: Usuário lista filmes a alugar com prioridadePara aumentar a quantidade de filmes alugadosO usuário cadastradoNecessita informar os filmes que deseja assistir
Lembra User Story?
Ooops!Eu acho que vi um
padrão!
Funcionalidade: Usuário lista filmes a alugar com prioridade
Para aumentar a quantidade de filmes alugados
O usuário cadastrado
Necessita informar os filmes que deseja assistir
(quem)
(funcionalidade)
(valor de negócio)
Glup!Eu vi sim!Eu vi sim!
Estrutura de User Story
Sendo um ... (quem)
Eu quero/necessito ... (funcionalidade)
De modo que ... (valor de negócio)
Funcionalidade: Usuário lista filmes a alugar com prioridade
Para aumentar a quantidade de filmes alugados
O usuário cadastrado
Necessita informar os filmes que deseja assistir
(quem)
(funcionalidade)
(valor de negócio)
Cucumber Feature
behaviour driven development
Foco na linguagem
Colaboração
Por quê o código deve ser criado em detrimento a detalhes
Outside-in development
Funcionalidade: Usuário lista filmes a alugar com prioridadePara aumentar a quantidade de filmes alugadosO usuário cadastradoNecessita informar os filmes que deseja assistir
Cenário: Alta prioridadeDado que estou autenticadoQuando eu clicar no filme “Elvis”E apertar o botão “prioridade alta”Então eu devo ver “filme adicionado à lista”E devo ver “Elvis” na minha listaE “Elvis” deve estar marcado como “prioridade alta”
Cenário: ....Dado ... Quando ...Então ...
/features/aluguel.feature
Dado “que estou autenticado” do//code
end
Quando “eu clicar no filme \“Elvis\”” do//code
end
E “apertar o botão \“prioridade alta\”” do//code
end
Então “eu devo ver \“filme adicionado à lista\”” do//code
end
E “devo ver \“Elvis\” na minha lista” do//code
end
E “\“Elvis” deve estar marcado como \“prioridade alta\”” do//code
end
/features/steps/aluguel_steps.rb
The Art of War Plain Text!
Cucumber
é uma ferramenta que
executa documentação
de funcionalidades
escrita em texto puro
Internacionalização!
use o seu idioma
integrações
Dúvidas ?
E quanto à tradução de “Cucumber” ?
=)
Cucumber = Pepino!