*smacks head* Duh. Thanks David and Rob!
On Aug 26, 12:35 am, Rob Biedenharn <[email protected]> wrote: > On Aug 26, 2010, at 12:14 AM, David Chelimsky wrote: > > > > > On Aug 25, 2010, at 10:13 PM, Brian Ploetz wrote: > >> Environment > >> ------------------ > >> ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0] > >> rspec (1.3.0) > > >> Code > >> ------- > >> def currency_to_dollars(currency_amount) > >> raise ArgumentError("Currency amount can't be nil") if > >> currency_amount.nil? > >> end > > >> Spec > >> -------- > >> it "should raise an ArgumentError if currency_amount is nil" do > >> lambda { @service.currency_to_dollars(nil) }.should > >> raise_error(ArgumentError) > >> end > > >> Results in this failure: > >> 1) > >> 'Service should raise an ArgumentError if currency_amount is nil' > >> FAILED > >> expected ArgumentError, got #<NoMethodError: undefined method > >> `ArgumentError' for #<Service:0x0000010087e5f0>> > > > This message is telling you there is no ArgumentError method, not > > that the constant ArgumentError is missing. The method needs to be > > (adding ".new"): > > > def currency_to_dollars(currency_amount) > > raise ArgumentError.new("Currency amount can't be nil") if > > currency_amount.nil? > > end > > You might see this form, too. > > def currency_to_dollars(currency_amount) > raise ArgumentError, "Currency amount can't be nil" if > currency_amount.nil? > end > > Note the comma that separates the arguments to raise (Kernel#raise). > > -Rob > > > > > > >> test/spec/service_spec.rb:92:in `block (2 levels) in <top > >> (required)>' > > >> Changing the test to either of these two variants allows the the to > >> pass: > > >> lambda { @service.currency_to_dollars(nil) }.should > >> raise_error(StandardError) > >> lambda { @service.currency_to_dollars(nil) }.should raise_error > > > These pass because NoMethodError, which is what is being thrown, is > > a subclass of StandardError and Exception. > > > HTH, > > David > > _______________________________________________ > > rspec-users mailing list > > [email protected] > >http://rubyforge.org/mailman/listinfo/rspec-users > > Rob Biedenharn > [email protected] http://AgileConsultingLLC.com/ > [email protected] http://GaslightSoftware.com/ > > _______________________________________________ > rspec-users mailing list > [email protected]http://rubyforge.org/mailman/listinfo/rspec-users _______________________________________________ rspec-users mailing list [email protected] http://rubyforge.org/mailman/listinfo/rspec-users
