RSpec – O Inicio, como testar com rspec.

Posted by Herminio on agosto 24, 2009

Primeiramente vamos instalar Gem Spec.

$ gem install rspec

Agora vamos criar a nossa estrutura onde vamos trabalhar um exemplo simples.

$ mkdir bowling
$ cd bowling
$ mkdir spec
$ mkdir lib

Comece com um exemplo muito simples que expressa algum comportamento básico desejado.

# vamos criar um arquivo chamado bowling_spec.rb
# dentro pasta spec que criamos agora a pouco
require 'rubygems'
# o require a rubygems é para que eu possa
# chamadar a gem spec e testar minha aplicação.
require 'spec'
# e este require é do meu arquivo de boliche
# onde vou tentar validar seu código, com testes.
require 'lib/bowling'

# aqui é onde vamos descrever um boliche
describe Bowling do

    # vamos descrever um comportamento
    # deve ter 0 escore na calha do jogo
    it "should score 0 for gutter game" do
        # cria um novo objeto
        bowling = Bowling.new
        # passa o valor 0 pinos para o método hit
        20.times { bowling.hit(0) }
        # aqui ele diz: score deveria ser igual a 0
        bowling.score.should == 0
    end

end

Vamos executar o teste e vê-lo falhar.

$ spec spec/bowling_spec.rb --format specdoc
./spec/bowling_spec.rb:11: uninitialized constant Bowling

Agora, vamos escrever o código apenas o suficiente para fazê-lo passar.

# bowling - boliche

class Bowling

    def hit(pins)
    end

    def score
        0
    end

end

Execute o exemplo novamente e veja o teste passar.

$ spec spec/bowling_spec.rb --format specdoc

Bowling
- should score 0 for gutter game

Finished in 0.002854 seconds

1 example, 0 failures

Tomar medidas pequenas(baby-steps)
Não se apresse em escrever muito código. Em vez disso, adicionar outro exemplo, e deixá-lo guiar dizendo o que você tem que fazer a seguir. E não se esqueça de ter tempo para refatorar seu código antes que ele fique confuso. Você deve manter seu código limpo, a cada passo dado no seu caminho.


Se você gostou desse post, me recomende:

Recommend Me

Trackbacks

Use this link to trackback from your own site.

Comments

Leave a response

Comments