Ao utilizar uma linguagem comum para descrever os objectivos e os benefícios do código (BDD ajuda a chegar a uma definição de finalizado)
Quem já acabou um desenvolvimento e no período de aceitação lhe disseram: “não foi isto que eu pedi” ou “esqueci-me de te mencionar uma coisa” ?
Concebido originalmente em 2003 por Dan North como resposta ao Test Driven Development, e foi evoluindo ao longo dos anos.
Ao utilizar uma linguagem comum para descrever os objectivos e os benefícios do código (BDD ajuda a chegar a uma definição de finalizado)
Quem já acabou um desenvolvimento e no período de aceitação lhe disseram: “não foi isto que eu pedi” ou “esqueci-me de te mencionar uma coisa” ?
Concebido originalmente em 2003 por Dan North como resposta ao Test Driven Development, e foi evoluindo ao longo dos anos.
Ao utilizar uma linguagem comum para descrever os objectivos e os benefícios do código (BDD ajuda a chegar a uma definição de finalizado)
Quem já acabou um desenvolvimento e no período de aceitação lhe disseram: “não foi isto que eu pedi” ou “esqueci-me de te mencionar uma coisa” ?
Concebido originalmente em 2003 por Dan North como resposta ao Test Driven Development, e foi evoluindo ao longo dos anos.
Ao utilizar uma linguagem comum para descrever os objectivos e os benefícios do código (BDD ajuda a chegar a uma definição de finalizado)
Quem já acabou um desenvolvimento e no período de aceitação lhe disseram: “não foi isto que eu pedi” ou “esqueci-me de te mencionar uma coisa” ?
Concebido originalmente em 2003 por Dan North como resposta ao Test Driven Development, e foi evoluindo ao longo dos anos.
Ferramenta para criar testes de aceitação automatizados. Pode ser usado pelo programador como ferramenta de TDD E pelo cliente para gestão de requisitos.
Permite reduzir o fosso entre o programador e os stake holders através do uso de linguagem que ambos entendem
Funcionalidades que desejam ter
Ferramenta para criar testes de aceitação automatizados. Pode ser usado pelo programador como ferramenta de TDD E pelo cliente para gestão de requisitos.
Permite reduzir o fosso entre o programador e os stake holders através do uso de linguagem que ambos entendem
Funcionalidades que desejam ter
Lê ficheiros de texto com as funcionalidades da aplicação
As funcionalidades são descritas com cenários de exemplo Os steps permitem a interacção com o código a ser desenvolvido
Título Breve Narrativa E um número arbitrário de cenários que servem como critérios de aceitação
Não é rígido, não há um template, o que for melhor para comunicar com o cliente podem usar. Desde que tenham estes 3 pontos
Assim que temos o nosso Business value, queremos definir os critérios de aceitação. Que são executáveis
Título Breve Narrativa E um número arbitrário de cenários que servem como critérios de aceitação
Não é rígido, não há um template, o que for melhor para comunicar com o cliente podem usar. Desde que tenham estes 3 pontos
Assim que temos o nosso Business value, queremos definir os critérios de aceitação. Que são executáveis
Título Breve Narrativa E um número arbitrário de cenários que servem como critérios de aceitação
Não é rígido, não há um template, o que for melhor para comunicar com o cliente podem usar. Desde que tenham estes 3 pontos
Assim que temos o nosso Business value, queremos definir os critérios de aceitação. Que são executáveis
Título Breve Narrativa E um número arbitrário de cenários que servem como critérios de aceitação
Não é rígido, não há um template, o que for melhor para comunicar com o cliente podem usar. Desde que tenham estes 3 pontos
Assim que temos o nosso Business value, queremos definir os critérios de aceitação. Que são executáveis
Título Breve Narrativa E um número arbitrário de cenários que servem como critérios de aceitação
Não é rígido, não há um template, o que for melhor para comunicar com o cliente podem usar. Desde que tenham estes 3 pontos
Assim que temos o nosso Business value, queremos definir os critérios de aceitação. Que são executáveis
O que permite com que os steps sejam executáveis são os step definitions Falar do RSpec dentro do step
Não é obrigatório instalar o rspec, rspec-rails e o webrat. Mas ajudam imenso
webrat Browser Simulator for expressive, high level acceptance testing
Bdd Cucumber Em 25 Minutos - Presentation Transcript
BDD com
Cucumber
RubyLX 2 - 7 de Novembro de 2009
Ilídio Varandas
varandasi@gmail.com
IV4.pt
Em
25 minutos
Quem utiliza ?
• Cucumber
• RSpec
O que é o BDD?
O que é o BDD?
• Técnica de desenvolvimento de software,
que encoraja a colaboração entre:
O que é o BDD?
• Técnica de desenvolvimento de software,
que encoraja a colaboração entre:
• Programadores
O que é o BDD?
• Técnica de desenvolvimento de software,
que encoraja a colaboração entre:
• Programadores
• QA (Quality Assurance)
O que é o BDD?
• Técnica de desenvolvimento de software,
que encoraja a colaboração entre:
• Programadores
• QA (Quality Assurance)
• Áreas de negócio, e outros participantes
não técnicos
Cucumber
Cucumber
• É uma ferramenta para criação de testes e
gestão de requisitos
Cucumber
• É uma ferramenta para criação de testes e
gestão de requisitos
• Facilita a comunicação entre os
programadores e os stake-holders
Cucumber - Estrutura
Features descritas em Definição dos Steps em
texto Ruby
Cucumber - Feature
Cucumber - Feature
Feature: title
In order to [Business Value]
As a [Role]
I want to [Some Action]
Cucumber - Feature
Feature: title Título
In order to [Business Value]
As a [Role]
I want to [Some Action]
Cucumber - Feature
Feature: title Título
In order to [Business Value]
As a [Role] Narrativa
I want to [Some Action]
Cucumber - Feature
Feature: title Título
In order to [Business Value]
As a [Role] Narrativa
I want to [Some Action]
Scenario: title
Given [Context]
When [Action]
Then [Outcome]
Cucumber - Feature
Feature: title Título
In order to [Business Value]
As a [Role] Narrativa
I want to [Some Action]
Scenario: title
Cenários que
servem com o
Given [Context] critérios de
When [Action] aceitação
Then [Outcome]
Cucumber - Step
Given we like “pastel de belém” Feature (texto)
regexp match
Given /^we like “([^"]*)“$/i do |food|
food.should == ‘pastel de belém’ Step (Ruby)
end
Exemplo da apresentação: - rails blog - cd blog - more
Exemplo da apresentação: - rails blog - cd blog - script/generate cucumber - Executar cucumber features - (directorias e ficheiros que criou: step_definitions (webrat - permite simular o browser), support (env.rb inicializações e configurações do ambiente onde o cucumber vai correr), paths - helper com os paths para utilizar nos steps cucumber) - cucumber features - Adicionar features/read_articles.feature: Feature: List Articles In order to blog readers read my articles As a blog author I want to list my articles
Scenario: Articles List Given I have an article titled "Ruby @ Aliados 2009" And I have an article titled "Ruby em LX 2" When I go to the list of articles Then I should see "Ruby @ Aliados 2009" And I should see "Ruby em LX 2"
- Adicionar articles_steps.rb - Executar cucumber features - script/generate model article title:string content:text - rake db:migrate - rake db:test:clone
- Adicionar ao articles_steps.rb: Given /^I have an article titled "([^\"]*)"$/ do |arg1| pending end
- Substituir arg1 por title, e pending por Article.create!(:title => title)
- script/generate controller articles index
- Adicionar ao articles_controller: # articles_controller.rb def index @articles = Article.all end
- Adicionar ao routes.rb => map.resources :articles - Adicionar ao features/suport/paths.rb : when /the list of articles/ articles_path
Adicionar ao <!-- index.html.erb --> <% for article in @articles %> <p><%=h article.title %></p> <p><%=h article.content %></p> <% end %> less
0 comments
Post a comment