class RSpec::Mocks::VerifyingMessageExpectation
@api private
have the valid arguments.
message being expected, so that it can verify that any expectations
A message expectation that knows about the real implementation of the
def initialize(*args)
def initialize(*args) super end
def validate_expected_arguments!
def validate_expected_arguments! return if method_reference.nil? method_reference.with_signature do |signature| args = yield signature verifier = Support::LooseSignatureVerifier.new(signature, args) unless verifier.valid? # Fail fast is required, otherwise the message expectation will fail # as well ("expected method not called") and clobber this one. @failed_fast = true @error_generator.raise_invalid_arguments_error(verifier) end end end
def with(*args, &block)
- Private: -
def with(*args, &block) super(*args, &block).tap do validate_expected_arguments! do |signature| example_call_site_args = [:an_arg] * signature.min_non_kw_args example_call_site_args << :kw_args_hash if signature.required_kw_args.any? @argument_list_matcher.resolve_expected_args_based_on(example_call_site_args) end end end