So if I understand correctly, The following didn't raise an error: @audience.stats = 'Market Goblin' @audience.stats.should raise_error
because audience.stats didn't return an error. Where as lambda will return an error. On Jan 29, 2008 10:58 PM, Ben Mabey <[EMAIL PROTECTED]> wrote: > Andrew WC Brown wrote: > > ohhhhh, I left in: > > > > it "should return an error when passed a string" do > > @audience.stats = 'Market Goblin' > > lambda [EMAIL PROTECTED] = 'Market Goblin'}.should raise_error > > end > > > > when yours is: > > > > it "should return an error when passed a string" do > > lambda [EMAIL PROTECTED] = 'Market Goblin'}.should raise_error > > end > > > > I've seen lambda before but not sure what it does. > > A lambda in ruby is like a block or a Proc. There are some differences > between them, but for this simple use you can just think of it as a > block of code that will be passed to the 'raise_error' matcher that then > runs that block of code checking to see if an Exception is raised when > it is ran. You can also pass in the specific exception type to be more > specific. > > As a personal preference I like to alias lambda to 'running' in my > spec_helper.rb... I think this reads a lot better: > running [EMAIL PROTECTED] = 'Market Goblin'}.should raise_error > > For more on lambdas refer to the pickaxe. If you want more detailed > information of the subtle differences between them, Procs, blocks, and > methods check this out: > http://innig.net/software/ruby/closures-in-ruby.rb > > -Ben > > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users