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
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users