Mocha Mock Carries To Another Test

mocha needs to be loaded last. I struggled a lot with this problem too.

#Gemfile
  group :test
    gem 'mocha', '~>0.9.8', :require => false
    ...
  end

and

test_helper.rb
  ....
  #at the very bottom
  require 'mocha'

I had the same problem, mocked functionality was not isolated to a test, it seems to be a problem with the load order of Mocha.

I had some issues getting Mocha to work with Rails3. I found a few stackoverflow posts regarding, but didn't stumble across the solution until I found a post on agoragames.com

Basically, in the Gemfile of your project, the require for Mocha should look like:

gem 'mocha', :require => false

Then in test/test_helper.rb, add a require line for mocha:

...
...
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
require 'mocha'

class ActiveSupport::TestCase
...
...

I think the require line for mocha in the Gemfile means that you need to already have mocha installed as a gem, bundler won't take care of it for you.