Acabando com os lambdas do RSpec

04/07/08

Quando você começa a usar o RSpec, cedo ou tarde acabará usando o método lambda. Veja o exemplo abaixo.

it "should become 'from uk' style" do
  lambda { @emo.become_from_uk! }.should change(@emo, :from_uk)
end

O bloco lambda, após sua execução, deverá alterar o valor do atributo from_uk. O problema é que ele não combina com o RSpec. Ele é, como posso dizer, deselegante. Uma maneira bem legal de fazer isso é criando um alias.

alias :doing :lambda
it "should become 'from uk' style" do
  doing { @emo.become_from_uk! }.should change(@emo, :from_uk)
end

Muito melhor, não acha? :)

Comentários #


#1 Felipe Giotto disse:
16 Jul 08, 01:58PM

Grande idéia! Eu acho que uma das únicas coisas que o RSpec não deixa "legível" é o lambda para usar change, raise_error, etc! Vou começar a usar mais essa em nossos projetos! :D

Deixe um comentário




Este blog usa o Gravatar.


Não é aceito código HTML:
adicione-o no pastie.caboo.se ou paste.milk-it.net e poste apenas o link.

Se este é seu primeiro comentário, ele terá que ser aprovado antes de ser exibido.