Undefined method `include?' for nil:NilClass when using expect_any_instance_of(Klass).to receive_message_chain(msgs).with(arg)
Created by: Hirurg103
I have the following issue with rspec-mocks-3.6.0.beta2:
it 'test expect_any_instance_of to receive_message_chain' do
class Klass
end
expect_any_instance_of(Klass).to receive_message_chain('message1.message2').with('some args')
end
when I run the test
bundle exec rspec spec/carrierwave/storage/flickr_spec.rb:163 -b
I get this error:
CarrierWave::Storage::Flickr
test expect_any_instance_of to receive_message_chain (FAILED - 1)
Failures:
1) CarrierWave::Storage::Flickr test expect_any_instance_of to receive_message_chain
Failure/Error: expect_any_instance_of(Klass).to receive_message_chain('message1.message2').with('some args')
NoMethodError:
undefined method `include?' for nil:NilClass
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-mocks-3.6.0.beta2/lib/rspec/mocks/any_instance/stub_chain.rb:41:in `verify_invocation_order'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-mocks-3.6.0.beta2/lib/rspec/mocks/any_instance/chain.rb:103:in `record'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-mocks-3.6.0.beta2/lib/rspec/mocks/any_instance/chain.rb:28:in `block in record'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-mocks-3.6.0.beta2/lib/rspec/mocks/any_instance/chain.rb:85:in `with'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-mocks-3.6.0.beta2/lib/rspec/mocks/any_instance/proxy.rb:110:in `block in method_missing'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-mocks-3.6.0.beta2/lib/rspec/mocks/any_instance/proxy.rb:110:in `map'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-mocks-3.6.0.beta2/lib/rspec/mocks/any_instance/proxy.rb:110:in `method_missing'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-mocks-3.6.0.beta2/lib/rspec/mocks/matchers/expectation_customization.rb:15:in `playback_onto'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-mocks-3.6.0.beta2/lib/rspec/mocks/matchers/receive_message_chain.rb:66:in `block in replay_customizations'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-mocks-3.6.0.beta2/lib/rspec/mocks/matchers/receive_message_chain.rb:65:in `each'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-mocks-3.6.0.beta2/lib/rspec/mocks/matchers/receive_message_chain.rb:65:in `replay_customizations'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-mocks-3.6.0.beta2/lib/rspec/mocks/matchers/receive_message_chain.rb:45:in `setup_any_instance_expectation'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-mocks-3.6.0.beta2/lib/rspec/mocks/targets.rb:46:in `define_matcher'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-mocks-3.6.0.beta2/lib/rspec/mocks/targets.rb:10:in `block in delegate_to'
# ./spec/carrierwave/storage/flickr_spec.rb:166:in `block (2 levels) in <top (required)>'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/example.rb:254:in `instance_exec'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/example.rb:254:in `block in run'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/example.rb:496:in `block in with_around_and_singleton_context_hooks'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/example.rb:453:in `block in with_around_example_hooks'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/hooks.rb:464:in `block in run'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/hooks.rb:602:in `run_around_example_hooks_for'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/hooks.rb:464:in `run'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/example.rb:453:in `with_around_example_hooks'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/example.rb:496:in `with_around_and_singleton_context_hooks'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/example.rb:251:in `run'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/example_group.rb:627:in `block in run_examples'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/example_group.rb:623:in `map'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/example_group.rb:623:in `run_examples'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/example_group.rb:589:in `run'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/runner.rb:118:in `block (3 levels) in run_specs'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/runner.rb:118:in `map'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/runner.rb:118:in `block (2 levels) in run_specs'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/configuration.rb:1875:in `with_suite_hooks'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/runner.rb:113:in `block in run_specs'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/reporter.rb:78:in `report'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/runner.rb:112:in `run_specs'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/runner.rb:87:in `run'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/runner.rb:71:in `run'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/lib/rspec/core/runner.rb:45:in `invoke'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-core-3.6.0.beta2/exe/rspec:4:in `<top (required)>'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/bin/rspec:23:in `load'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/bin/rspec:23:in `<main>'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/bin/ruby_executable_hooks:15:in `eval'
# /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/bin/ruby_executable_hooks:15:in `<main>'
Seems like that the error happens in
From: /Users/Hirurg103/.rvm/gems/ruby-2.2.4@carriervawe-flickr/gems/rspec-mocks-3.6.0.beta2/lib/rspec/mocks/any_instance/expect_chain_chain.rb @ line 25:
Owner: RSpec::Mocks::AnyInstance::ExpectChainChain
Visibility: private
Number of lines: 7
def invocation_order
@invocation_order ||= {
:and_return => [nil],
:and_raise => [nil],
:and_yield => [nil]
}
end
I thought that this issue has been fixed in #1061, but seems like that hasn't. Could you please help me to get this test case falling normally. Thanks!