Mocha should be loaded after Shoulda with rails 2.3
Well, this one really drove me crazy. So I decided to finally pen it down. May this help somebody else in future. This might not be very new, but really crazy stuff.
If you are using Mocha and Shoulda both, then please load Mocha after you have loaded Shoulda. Like following:
config.gem “shoulda”, :lib => “shoulda”, :source => “http://gems.github.com”, :version => “>=2.11.3″
config.gem ‘mocha’
If you load Mocha before Shoulda, what happens is that Mocha gets crazy with the expectations. You might see your tests failing because of some weird expectations that are not set in the current failing test but were set somewhere else in some other test.
So, in a nut shell, Mocha starts keeping the expectations across tests instead of wiping them off after each test, as it is expected to do.

You just saved me my remaining hair. Still relevant in Rails 3.0
Many thanks.