RSpec - Introdução
RSpec é uma estrutura de teste de unidade para a linguagem de programação Ruby. RSpec é diferente de estruturas xUnit tradicionais como JUnit porque RSpec é uma ferramenta de desenvolvimento orientada por comportamento. O que isso significa é que os testes escritos em RSpec enfocam o “comportamento” de um aplicativo sendo testado. RSpec não coloca ênfase em como o aplicativo funciona, mas em como ele se comporta, em outras palavras, o que o aplicativo realmente faz.
Ambiente RSpec
Em primeiro lugar, você precisará instalar o Ruby em seu computador. No entanto, se você ainda não fez isso antes, pode baixar e instalar o Ruby do site principal do Ruby - Ruby .
Se você estiver instalando Ruby no Windows, você deve ter o instalador Ruby para Windows aqui em - http://www.rubyinstaller.org
Para este tutorial, você só precisará de um editor de texto, como o Bloco de notas e um console de linha de comando. Os exemplos aqui usarão cmd.exe no Windows.
Para executar o cmd.exe, basta clicar no menu Iniciar e digitar “cmd.exe” e, em seguida, pressionar a tecla Return.
No prompt de comando da janela cmd.exe, digite o seguinte comando para ver qual versão do Ruby você está usando -
ruby -v
Você deve ver a saída abaixo que é semelhante a esta -
ruby 2.2.3p173 (2015-08-18 revision 51636) [x64-mingw32]
Os exemplos neste tutorial usarão Ruby 2.2.3, mas qualquer versão de Ruby superior a 2.0.0 será suficiente. Em seguida, precisamos instalar a gem RSpec para a instalação do Ruby. Uma gema é uma biblioteca Ruby que você pode usar em seu próprio código. Para instalar uma gema, você precisa usar ogem comando.
Vamos instalar a gem Rspec agora. Volte para a janela cmd.exe e digite o seguinte -
gem install rspec
Você deve ter uma lista de gems dependentes que foram instaladas, são gems que o gem rspec precisa para funcionar corretamente. No final da saída, você deve ver algo parecido com isto -
Done installing documentation for diff-lcs, rspec-support, rspec-mocks,
rspec-expectations, rspec-core, rspec after 22 seconds
6 gems installed
Não se preocupe se sua saída não for exatamente a mesma. Além disso, se você estiver usando um computador Mac ou Linux, pode ser necessário executargem install rspec comando usando sudo ou use uma ferramenta como HomeBrew ou RVM para instalar a gem rspec.
Hello World
Para começar, vamos criar um diretório (pasta) para armazenar nossos arquivos RSpec. Na janela cmd.exe, digite o seguinte -
cd \
Então digite -
mkdir rspec_tutorial
E, finalmente, digite -
cd rspec_tutorial
A partir daqui, vamos criar outro diretório chamado spec, faça isso digitando -
mkdir spec
Vamos armazenar nossos arquivos RSpec nesta pasta. Os arquivos RSpec são conhecidos como “especificações”. Se isso parece confuso para você, pense em um arquivo de especificação como um arquivo de teste. RSpec usa o termo “especificação”, que é uma forma abreviada de “especificação”.
Como o RSpec é uma ferramenta de teste BDD, o objetivo é focar no que o aplicativo faz e se segue ou não uma especificação. No desenvolvimento orientado por comportamento, a especificação é frequentemente descrita em termos de uma “História de Usuário”. RSpec é projetado para deixar claro se o código de destino está se comportando corretamente, em outras palavras, seguindo a especificação.
Voltemos ao nosso código Hello World. Abra um editor de texto e adicione o seguinte código -
class HelloWorld
def say_hello
"Hello World!"
end
end
describe HelloWorld do
context “When testing the HelloWorld class” do
it "should say 'Hello World' when we call the say_hello method" do
hw = HelloWorld.new
message = hw.say_hello
expect(message).to eq "Hello World!"
end
end
end
Em seguida, salve-o em um arquivo denominado hello_world_spec.rb na pasta spec que você criou acima. Agora, de volta à janela cmd.exe, execute este comando -
rspec spec spec\hello_world_spec.rb
Quando o comando for concluído, você deverá ver uma saída semelhante a esta -
Finished in 0.002 seconds (files took 0.11101 seconds to load)
1 example, 0 failures
Parabéns, você acabou de criar e executar seu primeiro teste de unidade RSpec!
Na próxima seção, continuaremos a discutir a sintaxe dos arquivos RSpec.