minitest-stub-const
Stub constants for the duration of a block in MiniTest.
Similar to RSpec's stub_const.
Example
Stub a constant for the duration of a block:
module Foo
  BAR = :original
end
Foo.stub_const(:BAR, :stubbed) do
  Foo::BAR
end
# => :stubbed
Foo::BAR
# => :originalThis is especially useful when testing that the expected class methods
are being called on a Module or Class instance:
module SomeLib
  class Thing
    def self.add
      fail NotImplementedError
    end
  end
end
class ThingAdder
  def add_thing
    SomeLib::Thing.add
  end
end
describe ThingAdder do
  describe '#add_thing' do
    it 'should call Thing.add' do
      adder = ThingAdder.new
      mock = Minitest::Mock.new
      mock.expect(:add, nil)
      SomeLib.stub_const(:Thing, mock) do
        adder.add_thing
      end
      assert mock.verify
    end
  end
endInstallation
gem install minitest-stub-constOr add gem "minitest-stub-const" to your Gemfile and run bundle install.
Then require "minitest/stub_const" on your test_helper.rb or test file.
License
minitest-stub-const is free software, available under the MIT license.