Sha256: 3e9f02537cfee63db30a7967dcd39feda78f37f8fffea8aecf80d5b8c5f935df

Contents?: true

Size: 1.27 KB

Versions: 13

Compression:

Stored size: 1.27 KB

Contents

require 'spec_helper'

module RSpec
  module Mocks

    describe "only stashing the original method" do
      let(:klass) do
        Class.new do
          def self.foo(arg)
            :original_value
          end
        end
      end

      it "keeps the original method intact after multiple expectations are added on the same method" do
        klass.should_receive(:foo).with(:fizbaz).and_return(:wowwow)
        klass.should_receive(:foo).with(:bazbar).and_return(:okay)

        klass.foo(:fizbaz)
        klass.foo(:bazbar)
        klass.rspec_verify

        klass.rspec_reset
        expect(klass.foo(:yeah)).to equal(:original_value)
      end
    end

    describe "when a class method is aliased on a subclass and the method is mocked" do
      let(:klass) do
        Class.new do
          class << self
            alias alternate_new new
          end
        end
      end

      it "restores the original aliased public method" do
        klass = Class.new do
          class << self
            alias alternate_new new
          end
        end

        klass.should_receive(:alternate_new)
        expect(klass.alternate_new).to be_nil

        klass.rspec_verify

        klass.rspec_reset
        expect(klass.alternate_new).to be_an_instance_of(klass)
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 7 rubygems

Version Path
judge-2.0.5 vendor/bundle/ruby/2.1.0/gems/rspec-mocks-2.13.0/spec/rspec/mocks/stash_spec.rb
sshp-0.0.2 vendor/ruby/1.9.1/gems/rspec-mocks-2.13.1/spec/rspec/mocks/stash_spec.rb
sshp-0.0.1 vendor/ruby/1.9.1/gems/rspec-mocks-2.13.1/spec/rspec/mocks/stash_spec.rb
sidekiq-statsd-0.1.1 vendor/ruby/1.9.1/gems/rspec-mocks-2.13.1/spec/rspec/mocks/stash_spec.rb
sidekiq-statsd-0.1.0 vendor/ruby/1.9.1/gems/rspec-mocks-2.13.1/spec/rspec/mocks/stash_spec.rb
rspec-mocks-2.13.1 spec/rspec/mocks/stash_spec.rb
vagrant-actionio-0.0.9 vendor/bundle/gems/rspec-mocks-2.13.0/spec/rspec/mocks/stash_spec.rb
rspec-mocks-2.13.0 spec/rspec/mocks/stash_spec.rb
spy-0.1.0 spec/spy/stash_spec.rb
remq-0.0.4 vendor/bundle/gems/rspec-mocks-2.12.2/spec/rspec/mocks/stash_spec.rb
remq-0.0.3 vendor/bundle/gems/rspec-mocks-2.12.2/spec/rspec/mocks/stash_spec.rb
spy-0.0.1 spec/spy/stash_spec.rb
rspec-mocks-2.12.2 spec/rspec/mocks/stash_spec.rb