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.