Sha256: 7e78fdda56792f7b69e7e18a28100fdecb91225dabab1aefe16cd0babc164b0b

Contents?: true

Size: 1.62 KB

Versions: 9

Compression:

Stored size: 1.62 KB

Contents

require 'support/doubled_classes'

module RSpec
  module Mocks
    RSpec.describe 'Constructing a verifying double' do
      describe 'instance doubles' do
        it 'cannot be constructed with a non-module object' do
          expect {
            instance_double(Object.new)
          }.to raise_error(/Module or String expected/)
        end

        it 'can be constructed with a struct' do
          o = instance_double(Struct.new(:defined_method), :defined_method => 1)

          expect(o.defined_method).to eq(1)
        end
      end

      describe 'class doubles' do
        it 'cannot be constructed with a non-module object' do
          expect {
            class_double(Object.new)
          }.to raise_error(/Module or String expected/)
        end
      end

      describe 'when verify_doubled_constant_names config option is set' do
        include_context "with isolated configuration"

        before do
          RSpec::Mocks.configuration.verify_doubled_constant_names = true
        end

        it 'prevents creation of instance doubles for unloaded constants' do
          expect {
            instance_double('LoadedClas')
          }.to raise_error(VerifyingDoubleNotDefinedError)
        end

        it 'prevents creation of class doubles for unloaded constants' do
          expect {
            class_double('LoadedClas')
          }.to raise_error(VerifyingDoubleNotDefinedError)
        end
      end

      it 'can only be named with a string or a module' do
        expect { instance_double(1) }.to raise_error(ArgumentError)
        expect { instance_double(nil) }.to raise_error(ArgumentError)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
opal-rspec-0.6.2 rspec-mocks/spec/rspec/mocks/verifying_doubles/construction_spec.rb
opal-rspec-0.6.1 rspec-mocks/spec/rspec/mocks/verifying_doubles/construction_spec.rb
opal-rspec-0.6.0 rspec-mocks/spec/rspec/mocks/verifying_doubles/construction_spec.rb
opal-rspec-0.6.0.beta1 rspec-mocks/spec/rspec/mocks/verifying_doubles/construction_spec.rb
opal-connect-rspec-0.5.0 rspec-mocks/spec/rspec/mocks/verifying_doubles/construction_spec.rb
opal-rspec-0.5.0 rspec-mocks/spec/rspec/mocks/verifying_doubles/construction_spec.rb
opal-rspec-0.5.0.beta3 rspec-mocks/spec/rspec/mocks/verifying_doubles/construction_spec.rb
opal-rspec-0.5.0.beta2 rspec-mocks/spec/rspec/mocks/verifying_doubles/construction_spec.rb
opal-rspec-0.5.0.beta1 rspec-mocks/spec/rspec/mocks/verifying_doubles/construction_spec.rb