Reputation: 1500
Simplifying my problem:
it 'should call resolve', focus: true do
SubscriptionEventResolver.any_instance.should_receive(:resolve)
SubscriptionEventResolver.new(double().as_null_object).resolve
end
This test fails with the following message:
Failures:
1) SubscriptionEvent should call resolve
Failure/Error: SubscriptionEventResolver.any_instance.should_receive(:resolve)
(#<Mocha::ClassMethods::AnyInstance:0x007f89c40a5488>).resolve(any args)
expected: 1 time with any arguments
received: 0 times with any arguments
# ./spec/models/subscription_event_spec.rb:66:in `block (2 levels) in <top (required)>'
# -e:1:in `<main>'
Finished in 0.44287 seconds
1 example, 1 failure
Why?
(I'm using rspec-rails (2.14.0) with all dependencies updated.)
Upvotes: 1
Views: 148
Reputation: 1211
Have you tried with:
it 'should call resolve', focus: true do
resolver = double('resolver')
resolver.should_receive(:resolve)
SubscriptionEventResolver.stub(:new).and_return(resolver)
SubscriptionEventResolver.new(double('argument').as_null_object).resolve
end
Upvotes: 0
Reputation: 3999
This works for me
require 'rspec/autorun'
class SubscriptionEventResolver < Struct.new(:event)
end
describe SubscriptionEventResolver do
it 'should call resolve' do
SubscriptionEventResolver.any_instance.should_receive(:resolve)
SubscriptionEventResolver.new(double().as_null_object).resolve
end
end
gives me
[17:40] arkham ~/Desktop [2.0.0-p247]
↳ $ ruby resolver_spec.rb
.
Finished in 0.0011 seconds
1 example, 0 failures
Maybe there is something else interfering?
Upvotes: 1