Thanks, Chris. That did the trick!

> On Apr 13, 2020, at 2:42 PM, Chris Irish <[email protected]> wrote:
> 
> You could also stub the .find in your controller and force the object in the 
> action to be the double from your test
> 
> i.e.  expect(User).to receive(:find).and_return(@user1)
> 
> then your test would work assume kill was actually called on @user1
> 
> On Sunday, April 12, 2020 at 9:19:42 PM UTC-7, Jack R-G wrote:
> Consider the following controller test fragment: 
> 
> … 
>         it 'should call the kill function on the user' do 
> byebug 
>           expect(@user1).to receive(:kill) 
>           put :update, id: :user_kill, user_id: @user1.id <http://user1.id/> 
>         end 
> … 
> 
> At the breakpoint in byebug, I set a breakpoint at "User#kill" and display 
> the value "@user1.id <http://user1.id/>". When the program breaks at 
> User#kill, I view “self.id <http://self.id/>” — same value. I then continue 
> and the est fails with the message: 
> 
>      Failure/Error: expect(@user1).to receive(:kill) 
>        (#<User:0x007fc38cd6a248>).kill(any args) 
>            expected: 1 time with any arguments 
>            received: 0 times with any arguments 
> 
> If I put another breakpoint after the “put” command, I can verify that the 
> record has been deleted (which is the effect of calling User#kill. I can test 
> the effect instead of testing the method call directly, but I’d rather do it 
> this way (I have several other functions whose effect is less easy to detect, 
> therefore I’d like to get this style of test to work). Any thoughts? 
> 
> If it makes a difference, running RSpec 2.99 on Rails 3.2.21. (Please don’t 
> advise me to upgrade, I’m adding tests preparatory to upgrading.)
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "rspec" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] 
> <mailto:[email protected]>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/rspec/933f9086-36e0-4a5a-9123-a58087fcc6f0%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/rspec/933f9086-36e0-4a5a-9123-a58087fcc6f0%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- 
You received this message because you are subscribed to the Google Groups 
"rspec" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rspec/2517A4B0-EA45-42CC-871F-E262CF82EDE5%40pobox.com.

Reply via email to