Spec::Expectations lets you set expectations on your objects.
result.should == 37 team.should have(11).players_on_the_field
Spec::Expectations adds two methods to Object:
Both methods take an optional Expression Matcher (See Spec::Matchers).
When should receives an Expression Matcher, it calls matches?(self). If it returns true, the spec passes and execution continues. If it returns false, then the spec fails with the message returned by matcher.failure_message.
Similarly, when should_not receives a matcher, it calls matches?(self). If it returns false, the spec passes and execution continues. If it returns true, then the spec fails with the message returned by matcher.negative_failure_message.
RSpec ships with a standard set of useful matchers, and writing your own matchers is quite simple. See Spec::Matchers for details.