Escrevendo testes numa aplicação Rails
Agora que já instalamos o RSpec e o Capybara, vamos escrever nosso primeiro teste!O ideal é sempre começar pelo teste. Nós já quebramos esta regra quando fizemos nossa home, afinal ainda não tínhamos testes na nossa aplicação. Vamos corrigir isso agora e daqui para frente trabalhar com testes sempre!
1 - Crie o arquivo person_sees_home_spec.rb
Ele deve ser criado dentro do diretório spec/features. A parte final (_spec.rb) é a mais importante, afinal é esta informação que o RSpec vai usar para decidir se o arquivo é ou não um teste.2 - Comece o código com o require para o rails_helper
Antes que o teste possa rodar, o Rails precisa montar e configurar o servidor e o ambiente. O teste em si também vai precisar saber as regras e configurações do seu escopo. Tudo isso é tratado pelo rails_helper ou pelos arquivos que ele carrega. Ao colocar o require no topo do nosso teste, nós nos certificamos de que tudo isso será levando em consideração.# spec/features/person_sees_home_spec.rb require 'rails_helper'
3 - Acrescente o bloco que nomeia a feature
Nosso teste precisa especificar a feature que será testada. É importante que a informação usada aqui seja descritiva da situação, pois quando este teste falhar, será ela que nos ajudará a identificar por onde começar nosso trabalho.
# spec/features/person_sees_home_spec.rb require 'rails_helper' feature 'person sees home' do end
4 - Dentro do bloco feature, acrescente o bloco scenario
O bloco cenário é usado para simularmos os diversos possíveis casos e comportamentos. Num teste para uma plataforma de pagamento, por exemplo, devemos testar um pagamento realizado com sucesso e também devemos testar um pagamento com um cartão de crédito vencido, por exemplo.Geralmente começamos pelo teste de sucesso, afinal é isso que precisamos primeiramente: Que a coisa funcione! Então, o nome do cenário é simplesmente 'sucessfully'.
# spec/features/person_sees_home_spec.rb require 'rails_helper' feature 'person sees home' do scenario 'sucessfully' do end end
Agora que temos o arquivo criado e organizado, vamos de fato escrever o que o teste precisa fazer!
5 - Mande o teste visitar a home da aplicação
Se queremos testar nossa home, aquela que criamos antes, precisamos que nosso teste navegue até ela. Fazemos isso com os métodos visit e root_path.O método visit é do Capybara. Ele instrui que queremos navegar para alguma URL.
O root_path é do Rails mesmo. Ele gera a URL da raiz da aplicação, conforme configurada no arquivo config/routes.rb. Nós apontamos a nossa raiz à home, então root_path vai gerar uma URL que mostrará ela.
# spec/features/person_sees_home_spec.rb require 'rails_helper' feature 'person sees home' do scenario 'sucessfully' do visit root_path end end
6 - Acrescente o comportamento esperado
Ao contrário das outras áreas das nossas vidas, quando escrevemos testes, precisamos criar expectativas! É assim que saberemos se nossa aplicação está, ou não, fazendo o que gostaríamos que ela fizesse.Neste caso, estamos testando a nossa home e no momento temos muito pouco nela. Então, nossa expectativa pode ser simplesmente que a palavra "sampope", nome da aplicação, apareça lá. Fazemos isso com acrescentando a linha de código expect(page).to have_content 'sampope'.
# spec/features/person_sees_home_spec.rb require 'rails_helper' feature 'person sees home' do scenario 'sucessfully' do visit root_path expect(page).to have_content 'sampope' end end

Nenhum comentário:
Postar um comentário