
Relatórios Rspec
Sabemos que o Rspec é uma ferramenta poderosa para a realização de nossos testes, mas podemos realizar algumas configurações para entedermos melhor seus logs.
Digamos que estamos testando uma classe Calculator que basicamente faz a soma de dois números…
class Calculator
def sum(a,b)
a+b
end
end
e nosso teste:
require "calculator"
describe Calculator do
subject(:calc){described_class.new()}
context "#sum" do
it "with positive numbers" do
result = calc.sum(5,7)
expect(result).to eq(12)
end
it "with negative and positive numbers" do
result = calc.sum(-5,7)
expect(result).to eq(2)
end
it "with negative numbers" do
result = calc.sum(-5,-7)
expect(result).to eq(-12)
end
end
end
Ao executarmos esse teste temos a seguinte saida:
bundle exec rspec spec
Finished in 0.02381 seconds (files took 0.17227 seconds to load)
3 examples, 0 failures
Mas queremos um relatório melhor com mais informações e visualmente melhor do que apenas mostrar o que deu certou ou não. Pensando nisso o rspec possui o comando –format documentation, vejamos como fica ao usarmos esse comando:
bundle exec rspec spec --format documentation
Calculator
#sum
with positive numbers
with negative and positive numbers
with negative numbers
Finished in 0.00389 seconds (files took 0.23323 seconds to load)
3 examples, 0 failures
Até mesmo com erros o log fica bem melhor de visualizar:
bundle exec rspec spec --format documentation
Failures:
1) Calculator#sum with positive numbers
Failure/Error: expect(result).to eq(112)
expected: 112
got: 12
(compared using ==)
# ./spec/calculator/calculator_spec.rb:8:in `block (3 levels) in <top (required)>'
Finished in 0.11017 seconds (files took 0.24823 seconds to load)
3 examples, 1 failure
Failed examples:
rspec ./spec/calculator/calculator_spec.rb:6 # Calculator#sum with positive numbers
Você deve estar se perguntando “Pô legal mas sempre vou precisar digitar tudo isso??”A resposta é não e para resolvermos existem duas maneiras.
A primeira solução é criar dentro do projeto o arquivo .rspec e adicionar nossas configurações nele como por exemplo:
--require spec_helper
--format documentation
--color
A segunda maneira seria alterar o arquivo spec_help.rb localizado no projeto rails na pasta spec, basta adicionar a seguinte linha:
RSpec.configure do |config|
config.formatter = :documentation
end
As duas maneiras vão carregar as configurações e aplicar ao executar os nossos testes.Para mais informações de output do rspec sempre leia a documentação.
E para finalizar podemos também exportar o conteúdo de nossos teste para um arquivo txt ou html, para fazer isso basta adicionar a seguinte instrução:
--format html --out nome_arquivo.html
Assim teremos uma página html como imagem no início do nosso post.
Por enquanto é só isso, nos vemos na próxima.