Given this simple cucumber feature (related to another rspec bug I am working on):
http://gist.github.com/266335 I'm fighting with this error messages that _only_ shows up in certain situations that I can't quite pin down (rake features breaks, individual cucumber run works, rake with debugger beforehand works...) > expected NoMethodError, got #<NameError: undefined local variable or method > `nap' for Time:Class > ./features/step_definitions/stubs_dont_leak_steps.rb:10:in `/^nap time should > not be defined$/' > features/either/stubs_dont_leak.feature:11:in `Then nap time should not be > defined' I've tracked it down to this line: http://github.com/dchelimsky/rspec/blob/master/lib/spec/mocks/proxy.rb#L117 def message_received(sym, *args, &block) expectation = find_matching_expectation(sym, *args) stub = find_matching_method_stub(sym, *args) if (stub && expectation && expectation.called_max_times?) || (stub && !expectation) if expectation = find_almost_matching_expectation(sym, *args) expectation.advise(args, block) unless expectation.expected_messages_received? end stub.invoke(*args, &block) elsif expectation expectation.invoke(*args, &block) elsif expectation = find_almost_matching_expectation(sym, *args) expectation.advise(args, block) if null_object? unless expectation.expected_messages_received? raise_unexpected_message_args_error(expectation, *args) unless (has_negative_expectation?(sym) or null_object?) else --> @target.__send__ :method_missing, sym, *args, &block end end My question is this... why do we fall back to method_missing here rather than a simple 'send' to the target? I figure there is likely a reason, so if someone could help me understand I'll happily open up my expectation to should_raise(NameError) and move along. :) Cheers, Paul _______________________________________________ rspec-users mailing list [email protected] http://rubyforge.org/mailman/listinfo/rspec-users
