On 8.2.2008, at 1.26, Pito Salas wrote:

> I am experimenting with the restful-authentication plug in and I see
> that it has generated an rspec encantation which I had not seen
> before:
>
>  it 'allows signup' do
>    lambda do
>      create_user
>      response.should be_redirect
>    end.should change(User, :count).by(1)
>  end
>
> What does the combination of a lambda and a .should mean?

Lambda is an anonymous function, or pretty much the same as a block of  
code. So in the case above, running the code inside the lambda block  
should change the user count by one. This is the same as  
assert_difference does in test/unit.

>
>
> Similarly but a little different:
>
>  describe 'being created' do
>    before do
>      @user = nil
>      @creating_user = lambda do
>        @user = create_user
>        violated "[EMAIL PROTECTED]" if
> @user.new_record?
>      end
>    end
>
>    it 'increments User#count' do
>      @creating_user.should change(User, :count).by(1)
>    end
>  end
>
> Thanks for any pointers or clarifications!

Same thing, just this time the function is first stored in an instance  
variable.

//jarkko

--
Jarkko Laine
http://jlaine.net
http://dotherightthing.com
http://www.railsecommerce.com
http://odesign.fi


_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to