Skip to content
This repository

Spy verifies receipt of an attr assignment call #54

josephholsten opened this Issue · 2 comments

3 participants

Joseph Anthony Pasquale Holsten Douglas J Meyer Elliot Winkler
Joseph Anthony Pasquale Holsten
describe 'Spy' do
  subject { stub!.subject }
  describe "with an attr_writer" do
    before { stub(subject).attribute=(anything) }
    context "after setting the attr" do
      before { subject.attribute = :value }
      it("verifies receipt of the call") { should have_received.attribute=(:value) }
      it("verifies receipt of the call via method_missing hack") { should have_received.method_missing(:attribute=, :value) }
Douglas J Meyer

Unless you run the test, I'm not sure if the problem is obvious. Essentially

should have_recieved.attribute(:value)

works but

should have_recieved.attribute=(:value)

doesn't work.

It looks like RR::SpyVerificationProxy.method_missing isn't returning the new RR::SpyVerification. This looks like a ruby issue as a = b = 1 will set a to 1 and not the result of b= (hope that makes sense).
I don't think this is something that can be fixed in a simple patch and may require something more drastic like a new api for spies.

In the mean-time you could manually verify with something like, :attribute=, :value).call
Elliot Winkler

I can confirm this is still an issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.