如何在RSpec中使用存根/模拟来设置实例变量?

时间:2015-06-23 07:54:57

标签: ruby-on-rails unit-testing rspec

全局变量(params[:something])只能通过get请求设置为methodA。现在,当methodA调用methodB时,methodB可以访问params[:something]

我可以将methodA更改为在实例变量中存储params。如果我正在尝试测试methodB,如何使用模拟/存根来调用methodA并设置这些变量?

public
def methodA
    @instance_variable = params[:something]
    @variable = methodB (arg1, arg2)
end

private
def methodB arg1, arg2
   // needs to use params[:something] or @instance_variable
end

1 个答案:

答案 0 :(得分:1)

您应该使用any_instance

YourClass.any_instance.stub(:method_a).return('foo')

https://www.relishapp.com/rspec/rspec-mocks/v/2-6/docs/method-stubs/stub-on-any-instance-of-a-class