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 %>
4. O que é o BDD?
• Técnica de desenvolvimento de software,
que encoraja a colaboração entre:
5. O que é o BDD?
• Técnica de desenvolvimento de software,
que encoraja a colaboração entre:
• Programadores
6. O que é o BDD?
• Técnica de desenvolvimento de software,
que encoraja a colaboração entre:
• Programadores
• QA (Quality Assurance)
7. 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
15. Cucumber - Feature
Feature: title Título
In order to [Business Value]
As a [Role] Narrativa
I want to [Some Action]
16. 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]
17. 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]
18. 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
Ao utilizar uma linguagem comum para descrever os objectivos e os benef&#xED;cios do c&#xF3;digo (BDD ajuda a chegar a uma defini&#xE7;&#xE3;o de finalizado)
Quem j&#xE1; acabou um desenvolvimento e no per&#xED;odo de aceita&#xE7;&#xE3;o lhe disseram: &#x201C;n&#xE3;o foi isto que eu pedi&#x201D; ou &#x201C;esqueci-me de te mencionar uma coisa&#x201D; ?
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&#xED;cios do c&#xF3;digo (BDD ajuda a chegar a uma defini&#xE7;&#xE3;o de finalizado)
Quem j&#xE1; acabou um desenvolvimento e no per&#xED;odo de aceita&#xE7;&#xE3;o lhe disseram: &#x201C;n&#xE3;o foi isto que eu pedi&#x201D; ou &#x201C;esqueci-me de te mencionar uma coisa&#x201D; ?
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&#xED;cios do c&#xF3;digo (BDD ajuda a chegar a uma defini&#xE7;&#xE3;o de finalizado)
Quem j&#xE1; acabou um desenvolvimento e no per&#xED;odo de aceita&#xE7;&#xE3;o lhe disseram: &#x201C;n&#xE3;o foi isto que eu pedi&#x201D; ou &#x201C;esqueci-me de te mencionar uma coisa&#x201D; ?
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&#xED;cios do c&#xF3;digo (BDD ajuda a chegar a uma defini&#xE7;&#xE3;o de finalizado)
Quem j&#xE1; acabou um desenvolvimento e no per&#xED;odo de aceita&#xE7;&#xE3;o lhe disseram: &#x201C;n&#xE3;o foi isto que eu pedi&#x201D; ou &#x201C;esqueci-me de te mencionar uma coisa&#x201D; ?
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&#xE7;&#xE3;o automatizados.
Pode ser usado pelo programador como ferramenta de TDD
E pelo cliente para gest&#xE3;o de requisitos.
Permite reduzir o fosso entre o programador e os stake holders atrav&#xE9;s do uso de linguagem que ambos entendem
Funcionalidades que desejam ter
Ferramenta para criar testes de aceita&#xE7;&#xE3;o automatizados.
Pode ser usado pelo programador como ferramenta de TDD
E pelo cliente para gest&#xE3;o de requisitos.
Permite reduzir o fosso entre o programador e os stake holders atrav&#xE9;s do uso de linguagem que ambos entendem
Funcionalidades que desejam ter
L&#xEA; ficheiros de texto com as funcionalidades da aplica&#xE7;&#xE3;o
As funcionalidades s&#xE3;o descritas com cen&#xE1;rios de exemplo
Os steps permitem a interac&#xE7;&#xE3;o com o c&#xF3;digo a ser desenvolvido
T&#xED;tulo
Breve Narrativa
E um n&#xFA;mero arbitr&#xE1;rio de cen&#xE1;rios que servem como crit&#xE9;rios de aceita&#xE7;&#xE3;o
N&#xE3;o &#xE9; r&#xED;gido, n&#xE3;o h&#xE1; 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&#xE9;rios de aceita&#xE7;&#xE3;o. Que s&#xE3;o execut&#xE1;veis
T&#xED;tulo
Breve Narrativa
E um n&#xFA;mero arbitr&#xE1;rio de cen&#xE1;rios que servem como crit&#xE9;rios de aceita&#xE7;&#xE3;o
N&#xE3;o &#xE9; r&#xED;gido, n&#xE3;o h&#xE1; 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&#xE9;rios de aceita&#xE7;&#xE3;o. Que s&#xE3;o execut&#xE1;veis
T&#xED;tulo
Breve Narrativa
E um n&#xFA;mero arbitr&#xE1;rio de cen&#xE1;rios que servem como crit&#xE9;rios de aceita&#xE7;&#xE3;o
N&#xE3;o &#xE9; r&#xED;gido, n&#xE3;o h&#xE1; 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&#xE9;rios de aceita&#xE7;&#xE3;o. Que s&#xE3;o execut&#xE1;veis
T&#xED;tulo
Breve Narrativa
E um n&#xFA;mero arbitr&#xE1;rio de cen&#xE1;rios que servem como crit&#xE9;rios de aceita&#xE7;&#xE3;o
N&#xE3;o &#xE9; r&#xED;gido, n&#xE3;o h&#xE1; 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&#xE9;rios de aceita&#xE7;&#xE3;o. Que s&#xE3;o execut&#xE1;veis
T&#xED;tulo
Breve Narrativa
E um n&#xFA;mero arbitr&#xE1;rio de cen&#xE1;rios que servem como crit&#xE9;rios de aceita&#xE7;&#xE3;o
N&#xE3;o &#xE9; r&#xED;gido, n&#xE3;o h&#xE1; 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&#xE9;rios de aceita&#xE7;&#xE3;o. Que s&#xE3;o execut&#xE1;veis
O que permite com que os steps sejam execut&#xE1;veis s&#xE3;o os step definitions
Falar do RSpec dentro do step
N&#xE3;o &#xE9; obrigat&#xF3;rio instalar o rspec, rspec-rails e o webrat. Mas ajudam imenso
webrat Browser Simulator for expressive, high level acceptance testing