Aprendendo RSPEC

datePosted on 22:07, setembro 21st, 2009 by Carlos Eugênio

carro.rb

class Carro < ActiveRecord::Base
attr_accessor :preco
def calcula_comissao
preco * 0.05
end
def novo?
true
end
end

require File.expand_path(File.dirname(__FILE__) + ‘/../spec_helper’)

carro_rspec.rb
module CarroSpec
class Calcula
def initialize(comissao)
@comissao = comissao
end

def matches?(bloco)
bloco.call == @comissao
end

def failure_message
“esperado que comissao nao fosse negativo: #{@comissao}”
end

def negative_failure_message
“esperado que comissao nao fosse negativo :#{@comissao}”
end
end
def ter_valor(comissao)
Calcula.new(comissao)
end

end

############################################

describe Carro do
include CarroSpec

before do
@carro = Carro.new
end

it “deveria ser novo” do
@carro.should be_novo
end

it “deveria ter uma comissao de 5% do valor” do

@carro.preco=32000
@carro.calcula_comissao.should be == 1600.0
end
it do
Carro.new.should_not be_an_instance_of(Moto)
end

it “deveria calcular a comissao” do
@carro.preco = 32000
@comissao =  1600.0
lambda {
@carro.calcula_comissao
}.should ter_valor(@comissao)
end

end

categoryPosted in Rails, Ruby | printPrint
Related Posts:

Leave a Reply

Name: (required)
Email: (required) (will not be published)
Website:
Comment:

Twitter Users
Enter your personal information in the form or sign in with your Twitter account by clicking the button below.

Spam Protection by WP-SpamFree