如何在update_attributes设置为false的情况下存根"current_user"?

Tri*_*rip 5 rspec ruby-on-rails rspec2 ruby-on-rails-3

这是一个纯粹的句法问题.我对RSpec很新.

我基本上想在这个错误行的行上写一些东西:

controller.stub!(:current_user(:update_attributes => false))
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何正确地写这个?

RSpec的默认值如下所示:

User.stub(:find) { mock_user(:update_attributes => false) }
Run Code Online (Sandbox Code Playgroud)

zet*_*tic 8

这看起来像是一个案例stub_chain:

controller.stub_chain(:current_user,:update_attributes).and_return(false)

请注意,这只是按照它们发生的顺序替换列表中的方法,因此为了理解这一点,您将current_user.update_attributes在控制器中拥有一个.如果你有类似的东西@user.update_attributes,我认为它不会起作用.

有关APIDock的更多信息

  • 你的作品也是!Stub_chaining太棒了!:D如果没有Zetetic我会在哪里?可能在麦当劳工作 (4认同)

Tri*_*rip 6

I just blindly played around with a thousand variations and finally got it to pass with this :

controller.stub!(:current_user).and_return(@user)
@user.stub!(:update_attributes => false)
Run Code Online (Sandbox Code Playgroud)

But seriously, does that even make any sense? It's passing :D