Começamos a usar faz pouco tempo o Rspec em um projeto aqui na Surgeworks. Como eu nunca tinha trabalhado com ele até então, tive de passar por um período de aprendizado/adaptação.
Gostei, mas confesso que não consegui me sentir totalmente à vontade com ele, não pelo menos, da mesma forma que me sinto quando estou usando o Unit::Test.
Depois de um tempos começamos um novo projeto e resolvi testar o Shoulda criado pela Thoughtbot, que prometia adicionar a sintaxe do Rspec ao Test::Unit. Agora sim!
O Shoulda vêm em forma de plugin ou gem e acrescenta diversos helpers ao Test::Unit deixando ele turbinado. Veja como o Shoulda pode ser útil e fácil:
class UserTest < Test::Unit::TestCase
load_all_fixtures
should_have_many :posts
should_not_allow_values_for :email, "blah", "b lah"
should_allow_values_for :email, "a@b.com", "asdf@asdf.com"
should_ensure_length_in_range :email, 1..100
should_ensure_value_in_range :age, 1..100
should_protect_attributes :password
context "A User instance" do
setup do
@user = User.find(:first)
end
should "return its full name" do
assert_equal 'John Doe', @user.full_name
end
context "with a profile" do
setup do
@user.profile = Profile.find(:first)
end
should "return true when sent #has_profile?" do
assert @user.has_profile?
end
end
end
end
Muito bom!
Para facilitar meu desenvolvimento peguei o bundle para o Textmate que estava sendo mantido pelo Dr. Nic, e fiz uma série de correções e alterações para contemplar todos os helpers disponíveis no plugin. Neste momento o bundle está completo.
O projeto como sempre está no GitHub e pode ser pego aqui.
Legal mesmo, semana que vem vou usar esse bundle
Sobre o rspec eu juro que tentei, até ganhei um cupom do peepcode de um podcast bacana ae ehehehehe mas o rspec nao me deixa confortável apesar do conceito de testar comportamento ser ótimo.
O shouda é muito bom, as macros são bem pragmáticas
O Bundle está redondinho… se encontrar alguma coisa faltando ou errado me dê um toque.
Legal, o bundle estava meio incompleto mesmo. Parabéns!
alguem percebe de pokemon?
respondam por favor