Teste sua aplicação com RSpec
Criado por Clemens Helm, @clemenshelm e Floor Drees, @floordrees
Traduzido por Marina Limeira, @marinalimeira_
Atualizado por Ana Schwendler, @anaschwendler
Esse guia assume que você já criou a app RailsGirls como mostrado no tutorial para criação da app Rails Girls.
RSpec é um framework para testes em Ruby, que descreve o comportamento da nossa aplicação em uma sintaxe que não se parece muito com Ruby. Ele irá mostrar o resultado dos testes no seu terminal, então você testará suas habilidades de leitura também.
INSTRUTOR(A): Fale sobre testes e Desenvolvimento Guiado por Comportamento (Behavior Driven Development).
1. Adicione a gem RSpec
Abra o seu Gemfile e adicione esta linha aos grupos:development e :test, acima da tag final:
group :development, :test do
...
gem 'rspec-rails', '~> 3.8'
ende rode
bundle installpara instalar a gem.
Em seguida, rode o comando abaixo para gerar as pastas do rspec:
rails generate rspec:installIsso adiciona os seguintes arquivos usados para configuração:
.rspecspec/spec_helper.rbspec/rails_helper.rb
2. Crie seu primeiro teste!
Rubystas frequentemente utilizam as palavras ‘teste’ e ‘especificação’ da mesma maneira, e é por isso que você irá armazenar seus testes no diretório ‘specs’. Para fazer isso, execute os seguintes passos:
Vamos criar um teste para o nosso modelo idea, para fazer isso de maneira elegante em Rails:
- Crie uma pasta
modelsna sua pastaspec, rodando no terminal:
mkdir spec/models- Salve seu teste como
idea_spec.rb(<nome_do_modelo> _spec.rb).
Dentro desse novo arquivo, em nosso primeiro teste, queremos garantir que uma ideia tenha um nome. Para fazer isso, vamos descrever uma de nossas especificações:
require "rails_helper"
RSpec.describe Idea, type: :model do
it "tem um nome" do
skip
end
endNo seu terminal rode:
rspec spec/models/idea_spec.rbqual será o resultado que seu teste está pendente, pois ainda não está implementado.
INSTRUTOR(A): Fale sobre ‘googlear’ a saída do terminal
Vamos fazer algo sobre isso!
require "rails_helper"
RSpec.describe Idea, type: :model do
it "tem um nome" do # sim, você pode user 'it' (lê-se como 'isso tem um nome')
idea = Idea.create!(name: "Minha ideia maravilhosa") # criando uma nova ideia
expect(idea.name).to eq("Minha ideia maravilhosa") # esperamos que seja salvo com o nome correto
end
enddeve gerar uma saída mais adequada.
3. Refatorando
Você pode criar duas ideias, para ter certeza de que nosso projeto está criando ideias da maneira certa:
require "rails_helper"
RSpec.describe Idea, type: :model do
it "tem um nome" do # sim, você pode user 'it' (lê-se como 'isso tem um nome')
idea = Idea.create!(name: "Minha ideia maravilhosa") # sim, você pode user 'it' (lê-se como 'isso tem um nome')
second_idea = Idea.create!(name: "Minha segunda ideia maravilhosa") # criando uma nova ideia
expect(second_idea.name).to eq("Minha segunda ideia maravilhosa") # esperamos que a segunda ideia seja salva corretamente
end
endque testa mais coisas.
INSTRUTOR(A): Fale um pouco sobre a refatoração.
4. Marcando os testes como a fazer
Sim! Listas de coisas a fazer. Maravilhoso. Uma boa funcionalidade do RSpec é a possibilidade de marcar alguns testes como pendente. Em outras palavras, primeiro você pensa sobre o que a implementação deve realizar, em seguida, escreve um teste para verificar se está funcionando.
Vamos criar nosso próximo teste, adicionando as linhas abaixo ao nosso idea_spec.rb
it "tem uma descricao"retornará que o teste está pendente.
Você consegue completar este teste? Você consegue pensar em outros testes?
5. Desenvolvimento Guiado por Comportamento (BDD)
INSTRUTOR(A): Fale um pouco sobre Desenvolvimento Guiado por Comportamento (BDD).
Agora você pode criar mais testes sozinho. Sinta-se à vontade para falar com o seu instrutor(a) para fazer isso ou maneiras de criar mais testes.
Feliz testes!
Outros Guias
- Handy cheatsheet for Ruby, Rails, console etc.
- Guia 1: Tutorial de Instalação para Rails Girls
- Guia 2: Tutorial para criação da app Rails Girls
- Guia 3: Como enviar para o GitHub
- Guia 4: Colocando seu app online em…
- Guia 5: Funcionalidades de uma área de comentários para a app Rails Girls
- Guia 6: Adicione design à sua aplicação com HTML e CSS
- Guia 7: Thumbnails em listas de ideas
- Guia 8: Autenticação (para usuários) com Devise
- Guia 9: Adicionando Gravatar para a aplicação
- Guia 10: Melhorando seu design da sua aplicação com HTML e CSS
- Guia 11: Continuous Deployment
- Testando seu app com RSpec (Você está aqui!)
- CD with Travis-CI
- CD with Codeship
- Guia 12: Construindo um aplicativo de votação em Sinatra
- Guia 13: Construa um diário em Ruby on Rails
- Guia 14: Adicione back-end ao seu aplicativo (páginas de administração)
- Guia 15: Acesse explicações adicionais do app Rails Girls