Class: RSpec::Mocks::ErrorGenerator

### Home Classes Methods

### In Files

- lib/rspec/mocks/error_generator.rb

### Parent

Object

### Methods

- ::new
- #default_error_message
- #describe_expectation
- #opts
- #raise_already_invoked_error
- #raise_cant_constrain_count_for_negated_have_received_error
- #raise_double_negation_error
- #raise_expectation_error
- #raise_expectation_on_mocked_method
- #raise_expectation_on_unstubbed_method
- #raise_expired_test_double_error
- #raise_have_received_disallowed
- #raise_invalid_arguments_error
- #raise_method_not_stubbed_error
- #raise_missing_block_error
- #raise_missing_default_stub_error
- #raise_non_public_error
- #raise_only_valid_on_a_partial_double
- #raise_out_of_order_error
- #raise_similar_message_args_error
- #raise_unexpected_message_args_error
- #raise_unexpected_message_error
- #raise_unimplemented_error
- #raise_verifying_double_not_defined_error
- #raise_wrong_arity_error

### Class/Module Index

Quicksearch

- RSpec
- RSpec::Mocks
- RSpec::Mocks::AllowanceTarget
- RSpec::Mocks::AndReturnImplementation
- RSpec::Mocks::AndWrapOriginalImplementation
- RSpec::Mocks::AndYieldImplementation
- RSpec::Mocks::AnyInstance
- RSpec::Mocks::AnyInstance::Chain
- RSpec::Mocks::AnyInstance::Chain::Customizations
- RSpec::Mocks::AnyInstance::ErrorGenerator
- RSpec::Mocks::AnyInstance::ExpectChainChain
- RSpec::Mocks::AnyInstance::ExpectationChain
- RSpec::Mocks::AnyInstance::FluentInterfaceProxy
- RSpec::Mocks::AnyInstance::MessageChains
- RSpec::Mocks::AnyInstance::PositiveExpectationChain
- RSpec::Mocks::AnyInstance::Proxy
- RSpec::Mocks::AnyInstance::Recorder
- RSpec::Mocks::AnyInstance::StubChain
- RSpec::Mocks::AnyInstance::StubChainChain
- RSpec::Mocks::AnyInstanceAllowanceTarget
- RSpec::Mocks::AnyInstanceExpectationTarget
- RSpec::Mocks::ArgumentListMatcher
- RSpec::Mocks::ArgumentMatchers
- RSpec::Mocks::ArgumentMatchers::AnyArgMatcher
- RSpec::Mocks::ArgumentMatchers::AnyArgsMatcher
- RSpec::Mocks::ArgumentMatchers::ArrayIncludingMatcher
- RSpec::Mocks::ArgumentMatchers::BaseHashMatcher
- RSpec::Mocks::ArgumentMatchers::BooleanMatcher
- RSpec::Mocks::ArgumentMatchers::DuckTypeMatcher
- RSpec::Mocks::ArgumentMatchers::HashExcludingMatcher
- RSpec::Mocks::ArgumentMatchers::HashIncludingMatcher
- RSpec::Mocks::ArgumentMatchers::InstanceOf
- RSpec::Mocks::ArgumentMatchers::KindOf
- RSpec::Mocks::ArgumentMatchers::NoArgsMatcher
- RSpec::Mocks::ArgumentMatchers::SingletonMatcher
- RSpec::Mocks::CallbackInvocationStrategy
- RSpec::Mocks::ClassNewMethodReference
- RSpec::Mocks::ClassVerifyingDouble
- RSpec::Mocks::Configuration
- RSpec::Mocks::Constant
- RSpec::Mocks::ConstantMutator
- RSpec::Mocks::ConstantMutator::BaseMutator
- RSpec::Mocks::ConstantMutator::ConstantHider
- RSpec::Mocks::ConstantMutator::DefinedConstantReplacer
- RSpec::Mocks::ConstantMutator::UndefinedConstantSetter
- RSpec::Mocks::DirectObjectReference
- RSpec::Mocks::Double
- RSpec::Mocks::ErrorGenerator
- RSpec::Mocks::ExampleMethods
- RSpec::Mocks::ExampleMethods::ExpectHost
- RSpec::Mocks::ExpectChain
- RSpec::Mocks::ExpectationTarget
- RSpec::Mocks::Implementation
- RSpec::Mocks::InstanceMethodReference
- RSpec::Mocks::InstanceMethodStasher
- RSpec::Mocks::InstanceVerifyingDouble
- RSpec::Mocks::MarshalExtension
- RSpec::Mocks::Matchers
- RSpec::Mocks::Matchers::ExpectationCustomization
- RSpec::Mocks::Matchers::HaveReceived
- RSpec::Mocks::Matchers::Receive
- RSpec::Mocks::Matchers::Receive::DefaultDescribable
- RSpec::Mocks::Matchers::ReceiveMessageChain
- RSpec::Mocks::Matchers::ReceiveMessages
- RSpec::Mocks::MessageChain
- RSpec::Mocks::MessageExpectation
- RSpec::Mocks::MessageExpectation::ImplementationDetails
- RSpec::Mocks::MethodDouble
- RSpec::Mocks::MethodReference
- RSpec::Mocks::Mutex
- RSpec::Mocks::NamedObjectReference
- RSpec::Mocks::NestedSpace
- RSpec::Mocks::NoCallbackInvocationStrategy
- RSpec::Mocks::ObjectMethodReference
- RSpec::Mocks::ObjectReference
- RSpec::Mocks::ObjectVerifyingDouble
- RSpec::Mocks::ObjectVerifyingDoubleMethods
- RSpec::Mocks::OrderGroup
- RSpec::Mocks::PartialClassDoubleProxy
- RSpec::Mocks::PartialClassDoubleProxyMethods
- RSpec::Mocks::PartialDoubleProxy
- RSpec::Mocks::Proxy
- RSpec::Mocks::ProxyForNil
- RSpec::Mocks::ReentrantMutex
- RSpec::Mocks::RootSpace
- RSpec::Mocks::SimpleMessageExpectation
- RSpec::Mocks::Space
- RSpec::Mocks::StubChain
- RSpec::Mocks::Syntax
- RSpec::Mocks::TargetBase
- RSpec::Mocks::TestDouble
- RSpec::Mocks::TestDoubleFormatter
- RSpec::Mocks::TestDoubleProxy
- RSpec::Mocks::VerifyingDouble
- RSpec::Mocks::VerifyingDouble::SilentIO
- RSpec::Mocks::VerifyingExistingClassNewMethodDouble
- RSpec::Mocks::VerifyingExistingMethodDouble
- RSpec::Mocks::VerifyingMessageExpectation
- RSpec::Mocks::VerifyingMethodDouble
- RSpec::Mocks::VerifyingPartialClassDoubleProxy
- RSpec::Mocks::VerifyingPartialDoubleProxy
- RSpec::Mocks::VerifyingProxy
- RSpec::Mocks::VerifyingProxyMethods
- RSpec::Mocks::Version
- BasicObject
- Class

No matching classes.

# RSpec::Mocks::ErrorGenerator

@private

### Attributes

opts[W]

### Public Class Methods

new(target=nil) click to toggle source

    # File lib/rspec/mocks/error_generator.rb, line 39
    def initialize(target=nil)
      @target = target
    end

### Public Instance Methods

default_error_message(expectation, expected_args, actual_args) click to toggle source

    # File lib/rspec/mocks/error_generator.rb, line 71
    def default_error_message(expectation, expected_args, actual_args)
      [
        intro,
        "received",
        expectation.message.inspect,
        unexpected_arguments_message(expected_args, actual_args),
      ].join(" ")
    end

describe_expectation(verb, message, expected_received_count, _actual_received_count, args) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 137
    def describe_expectation(verb, message, expected_received_count, _actual_received_count, args)
      "#{verb} #{message}#{format_args(args)} #{count_message(expected_received_count)}"
    end

opts() click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 44
    def opts
      @opts ||= {}
    end

raise_already_invoked_error(message, calling_customization) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 208
    def raise_already_invoked_error(message, calling_customization)
      error_message = "The message expectation for #{intro}.#{message} has already been invoked "            "and cannot be modified further (e.g. using `#{calling_customization}`). All message expectation "            "customizations must be applied before it is used for the first time."

      notify MockExpectationAlreadyInvokedError.new(error_message)
    end

raise_cant_constrain_count_for_negated_have_received_error(count_constraint) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 198
    def raise_cant_constrain_count_for_negated_have_received_error(count_constraint)
      __raise "can't use #{count_constraint} when negative"
    end

raise_double_negation_error(wrapped_expression) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 175
    def raise_double_negation_error(wrapped_expression)
      __raise "Isn't life confusing enough? You've already set a "                  "negative message expectation and now you are trying to "                  "negate it again with `never`. What does an expression like "                  "`#{wrapped_expression}.not_to receive(:msg).never` even mean?"
    end

raise_expectation_error(message, expected_received_count, argument_list_matcher, actual_received_count, expectation_count_type, args, backtrace_line=nil, source_id=nil) click to toggle source

rubocop:disable Style/ParameterLists @private

    # File lib/rspec/mocks/error_generator.rb, line 82
    def raise_expectation_error(message, expected_received_count, argument_list_matcher,
                                actual_received_count, expectation_count_type, args,
                                backtrace_line=nil, source_id=nil)
      expected_part = expected_part_of_expectation_error(expected_received_count, expectation_count_type, argument_list_matcher)
      received_part = received_part_of_expectation_error(actual_received_count, args)
      __raise "(#{intro(:unwrapped)}).#{message}#{format_args(args)}\n    #{expected_part}\n    #{received_part}", backtrace_line, source_id
    end

raise_expectation_on_mocked_method(method) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 169
    def raise_expectation_on_mocked_method(method)
      __raise "#{intro} expected to have received #{method}, but that "                  "method has been mocked instead of stubbed or spied."
    end

raise_expectation_on_unstubbed_method(method) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 163
    def raise_expectation_on_unstubbed_method(method)
      __raise "#{intro} expected to have received #{method}, but that "                  "object is not a spy or method has not been stubbed."
    end

raise_expired_test_double_error() click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 128
    def raise_expired_test_double_error
      raise ExpiredTestDoubleError,
            "#{intro} was originally created in one example but has leaked into "                "another example and can no longer be used. rspec-mocks' doubles are "                "designed to only last for one example, and you need to create a new "                "one in each example you wish to use it for."
    end

raise_have_received_disallowed(type, reason) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 192
    def raise_have_received_disallowed(type, reason)
      __raise "Using #{type}(...) with the `have_received` "                  "matcher is not supported#{reason}."
    end

raise_invalid_arguments_error(verifier) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 123
    def raise_invalid_arguments_error(verifier)
      __raise verifier.error_message
    end

raise_method_not_stubbed_error(method_name) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 203
    def raise_method_not_stubbed_error(method_name)
      __raise "The method `#{method_name}` was not stubbed or was already unstubbed"
    end

raise_missing_block_error(args_to_yield) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 147
    def raise_missing_block_error(args_to_yield)
      __raise "#{intro} asked to yield |#{arg_list(args_to_yield)}| but no block was passed"
    end

raise_missing_default_stub_error(expectation, args_for_multiple_calls) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 59
    def raise_missing_default_stub_error(expectation, args_for_multiple_calls)
      message = error_message(expectation, args_for_multiple_calls)
      message << "\n Please stub a default value first if message might be received with other args as well. \n"

      __raise message
    end

raise_non_public_error(method_name, visibility) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 116
    def raise_non_public_error(method_name, visibility)
      raise NoMethodError, "%s method `%s' called on %s" % [
        visibility, method_name, intro
      ]
    end

raise_only_valid_on_a_partial_double(method) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 157
    def raise_only_valid_on_a_partial_double(method)
      __raise "#{intro} is a pure test double. `#{method}` is only "                  "available on a partial double."
    end

raise_out_of_order_error(message) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 142
    def raise_out_of_order_error(message)
      __raise "#{intro} received :#{message} out of order"
    end

raise_similar_message_args_error(expectation, args_for_multiple_calls, backtrace_line=nil) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 67
    def raise_similar_message_args_error(expectation, args_for_multiple_calls, backtrace_line=nil)
      __raise error_message(expectation, args_for_multiple_calls), backtrace_line
    end

raise_unexpected_message_args_error(expectation, args_for_multiple_calls, source_id=nil) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 54
    def raise_unexpected_message_args_error(expectation, args_for_multiple_calls, source_id=nil)
      __raise error_message(expectation, args_for_multiple_calls), nil, source_id
    end

raise_unexpected_message_error(message, args) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 49
    def raise_unexpected_message_error(message, args)
      __raise "#{intro} received unexpected message :#{message} with #{format_args(args)}"
    end

raise_unimplemented_error(doubled_module, method_name, object) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 92
    def raise_unimplemented_error(doubled_module, method_name, object)
      message = case object
                when InstanceVerifyingDouble
                  "the %s class does not implement the instance method: %s" <<
                    if ObjectMethodReference.for(doubled_module, method_name).implemented?
                      ". Perhaps you meant to use `class_double` instead?"
                    else
                      ""
                    end
                when ClassVerifyingDouble
                  "the %s class does not implement the class method: %s" <<
                    if InstanceMethodReference.for(doubled_module, method_name).implemented?
                      ". Perhaps you meant to use `instance_double` instead?"
                    else
                      ""
                    end
                else
                  "%s does not implement: %s"
                end

      __raise message % [doubled_module.description, method_name]
    end

raise_verifying_double_not_defined_error(ref) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 183
    def raise_verifying_double_not_defined_error(ref)
      notify(VerifyingDoubleNotDefinedError.new(
        "#{ref.description.inspect} is not a defined constant. "            "Perhaps you misspelt it? "            "Disable check with `verify_doubled_constant_names` configuration option."
      ))
    end

raise_wrong_arity_error(args_to_yield, signature) click to toggle source

@private

    # File lib/rspec/mocks/error_generator.rb, line 152
    def raise_wrong_arity_error(args_to_yield, signature)
      __raise "#{intro} yielded |#{arg_list(args_to_yield)}| to block with #{signature.description}"
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.