On Nov 29, 2009, at 6:33 am, rogerdpack wrote: > It is somewhat surprising to me, as a newbie, to have to assert > a.should be_a(Hash)
Hi Roger Once you see the matcher (ie be_a) as something that returns a matcher object, it makes a lot more sense. My brain is now wired to give much more weight to the thing on the right. You might find it instructive/enlightening/life-changing (possibly) to have a go at writing some custom matchers. From the RSpec docs[1]: bob.current_zone.should eql(Zone.new("4")) becomes -> bob.should be_in_zone("4") which is implemented with -> Spec::Matchers.define :be_in_zone do |zone| match do |player| player.in_zone?(zone) end end Although I've just realised that RSpec's dynamic be_* matcher actually gives you that for free... HTH Ashley [1] http://rspec.rubyforge.org/rspec/1.2.9/classes/Spec/Matchers.html -- http://www.patchspace.co.uk/ http://www.linkedin.com/in/ashleymoran _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users