带有实例变量的存根方法

Stub method with instance variable

假设我有一个控制器:UserController

还有一个方法:

before_action :add_friend

def add_friend
   @friend = Friend.last
end

如何存根 add_friend 并创建另一个名为 @friend2:

的 instance_variable
@friend2 = Friend.first

这样:

@friend == nil

@friend2.nil? == false

我试过的是:

 @friend2 = Friend.first
 UserController.any_instance.stubs(:add_friend).returns(@friend2)

但这没有用! 谢谢

你可以试试这个:

describe UsersController, "..." do
  before(:each) do
    @friend2 = Friend.first
    controller.stub!(:add_friend).and_return(@friend2)
  end
  ...
  ...
end