8. História #123
Para conseguir mais informações de uma
coleção de revistas
Como um usuário
Eu deveria ver um relatório das minhas
revistas por tipo.
9. História #123
proposição
de valor
Para conseguir mais informações de uma
coleção de revistas
Como um usuário
Eu deveria ver um relatório das minhas
revistas por tipo.
10. História #123
Para conseguir mais informações de uma
coleção de revistas papel
Como um usuário
Eu deveria ver um relatório das minhas
revistas por tipo.
11. História #123
Para conseguir mais informações de uma
coleção de revistas
Como um usuário
Eu deveria ver um relatório das minhas
revistas por tipo.
funcionalidade
15. História #123
Apresentar todos os gêneros de revistas com a
soma real
Deveria mostrar o # total de revistas
Deveria possuir o link para nova revista
Deveria possuir o link para todas as revistas
21. Instalação Lembre-se de ter a
última versão do ruby
instalado.
0 Rails:
$ gem install rails
0 RSpec:
$ gem install rspec
0 Cucumber
$ gem install cucumber
22. Criando uma nova aplicação
0 Para criar uma nova aplicação Rails é simples:
$ rails new manga_collection -T
0 Pronto! Para testar é executar:
$ cd manga_collection
$ rails s
0 No navegador acesse http://localhost:3000
23. Gerenciando os pacotes
0 Altere o arquivo Gemfile responsável pelos
gerenciamento de pacotes com as seguintes linhas:
group :test do
gem 'database_cleaner', '0.7.2'
gem 'rspec-rails', '2.9.0'
gem 'cucumber-rails', '1.3.0'
gem 'webrat', '0.7.3'
end
0 Precisamos instalar as novas dependências:
$ bundle install
24. O ambiente de testes
0 Vamos instalar o RSpec e o Cucumber na aplicação
$ rails g rspec:install
$ rails g cucumber:install
27. Rails scaffold
0 Como exemplo vamos usar a funcionalidade de
scaffold para modelar o sistema.
$ rails g scaffold manga name:string volume:integer genre:string
29. Veja falhar
0 Execute:
$ cucumber features/
0 A princípio ele vai apenas informar que existem
passos não definidos;
0 Crie um arquivo .rb em features/step_definitions;
0 Implemente os passos e veja os testes falharem;
32. Faça o teste passar
0 Implementar um controle para relatórios de mangá;
0 Página html.erb com as expectativas no wireframe;
0 Rota apontando para a página;
Enough is enough!!!
33. Refatorar sem medo
0 Princípio: Encontrar code smells
0 Exemplos:
0 Variáveis temporárias;
0 Longos métodos;
0 Longas classes;
0 Os testes servem de suporte para refatoração!